8990. Удвоение гласных

 

Строка состоит из строчных латинских букв и пробелов. Удвойте в ней все гласные буквы, то есть буквы aeiou и y.

 

Вход. Одна строка, состоящая из строчных латинских букв и пробелов. Строка содержит не более 1000 символов.

 

Выход. Выведите строку со всеми удвоенными гласными буквами.

 

Пример входа

Пример выхода

welcome to python

weelcoomee too pyythoon

 

 

РЕШЕНИЕ

строки

 

Анализ алгоритма

Объявим указатель i на начало исходного символьного массива s и указатель j на начало результирующего символьного массива t: i = j = 0. Двигаем указатель i по буквам строки. Для каждой буквы строки s, не являющейся гласной, скопируем s[i] в t[j] и подвинем указатель j на одну позицию вперед. Если буква s[i] является гласной, то заносим ее два раза в конец строки t.

 

Реализация алгоритма

Объявим входной символьный массив s и результирующий t.

 

char s[1001], t[2001];

 

Читаем входную строку.

 

gets(s);

 

Букву s[i] копируем в t[j] и увеличиваем индекс j на 1. Если s[i] гласная, то заносим s[i] в конец массива t дважды.

 

int j = 0;

for (int i = 0; i < strlen(s); i++)

  if (s[i] == 'a' || s[i] == 'e' || s[i] == 'i' || s[i] == 'o' ||

      s[i] == 'u' || s[i] == 'y')

  {

    t[j++] = s[i];

    t[j++] = s[i];

  }

  else

    t[j++] = s[i];

 

В конце результирующей строки ставим 0 байт.

 

t[j] = 0;

 

Выводим результат.

 

puts(t);

 

Реализация алгоритма – C++

Читаем входную строку.

 

getline(cin, s);

 

Инициализируем результирующую строку res.

 

res = "";

 

Перебираем символы строки.

·        Если s[i] гласная, то в res добавляем две буквы s[i].

·        Если s[i] согласная, то в res добавляем одну букву s[i].

 

for (i = 0; i < s.size(); i++)

{

 

Добавляем в res букву s[i].

 

  res = res + s[i];

 

Если s[i] гласная, то в res добавляем букву s[i].

 

  if (s[i] == 'a' || s[i] == 'e' || s[i] == 'i' || s[i] == 'o' ||

      s[i] == 'u' || s[i] == 'y')

    res = res + s[i];

}

 

Выводим ответ.

 

cout << res;

 

Java реализация

 

import java.util.*;

 

public class Main

{

  public static void main(String[] args)

  {

    Scanner con = new Scanner(System.in);

    String s = con.nextLine();

    String res = "";

    for(int i = 0; i < s.length(); i++)

      if (s.charAt(i) == 'a' || s.charAt(i) == 'e' ||

          s.charAt(i) == 'i' || s.charAt(i) == 'o' ||

          s.charAt(i) == 'u' || s.charAt(i) == 'y' )

        res = res + s.charAt(i) + s.charAt(i);

      else

        res = res + s.charAt(i);

    System.out.println(res);

    con.close();

  }

}

 

Python реализация

Читаем входную строку.

 

s = input()

 

Инициализируем результирующую строку res.

 

res = ""

 

Перебираем символы строки.

·        Если s[i] гласная, то в res добавляем две буквы s[i].

·        Если s[i] согласная, то в res добавляем одну букву s[i].

 

for ch in s:

 

Добавляем в res букву ch.

 

  res += ch

 

Если ch гласная, то в res добавляем букву ch.

 

  if ch in "aeiouy":

    res += ch

 

Выводим ответ.

 

print(res)