Матч
336, Гласные латинские (VowelLatin)
Дивизион 2,
Уровень 1
Имеется система кодирования слов,
которая называется “гласные латинские”. Все гласные буквы извлекаются из слова
и дописываются в конец в таком же порядке, в котором они следовали в самом слове.
Гласными являются буквы ‘a’, ‘e’, ‘i’, ‘o’, ‘u’ (заглавные и прописные).
Необходимо описанным образом закодировать входное слово.
Класс: VowelLatin
Метод: string translate(string word)
Ограничения: word
содержит от 1 до 50 символов ‘A’-‘Z’,‘a’-‘z’.
Вход. Строка из прописных и заглавных букв латинского алфавита.
Выход. Закодированное слово.
Пример входа
word |
“XYz” |
“application” |
“aeioOa” |
Пример выхода
“XYz”
“pplctnaiaio”
“aeioOa”
РЕШЕНИЕ
обработка строк
Проходим по входному слову и
заносим в строку v гласные , а в
строку c согласные буквы.
Закодированным словом будет конкатенация строк c и v.
ПРОГРАММА
#include <cstdio>
#include <string>
#include <cstdlib>
using namespace std;
int isvowel(char c)
{
return ((c == 'A')
|| (c == 'E') || (c == 'I') || (c == 'O')
|| (c == 'U'));
}
class VowelLatin
{
public:
string translate(string word)
{
string v, c;
for(int
i = 0; i < word.size(); i++)
if (isvowel(toupper(word[i]))) v +=
word[i]; else c += word[i];
return c + v;
}
};