Вопрос по информатике:
ПОМОГИТЕ,ПЖЛ!
желательно C++ или паскаль(но мне хоть как-нибудь)
Все буквы латинского алфавита делятся на гласные и согласные. Гласными буквами являются: a, e, i, o, u, y. Остальные буквы являются согласными.
Слово называется благозвучным, если в этом слове не встречается больше двух согласных букв подряд и не встречается больше двух гласных букв подряд. Например, слова abba, mama, program — благозвучные, а слова aaa, school, search — неблагозвучные.
Вводится слово. Если это слово является неблагозвучным, то разрешается добавлять в любые места этого слова любые буквы. Определите, какое минимальное количество букв можно добавить в это слово, чтобы оно стало благозвучным.
Входные данные
Вводится слово, состоящее только из маленьких латинских букв. Длина слова не превышает 30 символов.
Выходные данные
Выведите минимальное число букв, которые нужно добавить в это слово, чтобы оно стало благозвучным.
Комментарии к примерам тестов
1. Слово уже является благозвучным.
2. Достаточно добавить одну гласную букву, например, между буквами s и с
Примеры
входные данные
program
выходные данные
0
входные данные
school
выходные данные
1
Трудности с пониманием предмета? Готовишься к экзаменам, ОГЭ или ЕГЭ?
Воспользуйся формой подбора репетитора и занимайся онлайн. Пробный урок - бесплатно!
- 19.06.2016 17:02
- Информатика
- remove_red_eye 15670
- thumb_up 6
Ответы и объяснения 1
#include
using namespace std;
int main() {
string s;
vector vowels = {'a','e','i','o','u','y'};
cin >> s;
int count_letters = 0; //сколько букв одной гласности подряд
int count = 0; // сколько букв добавить
int state = -1; //для гласности
int c = state; // для запоминания
for(int i = 0 ;i < s.length(); i++, c = state) {
if(find(vowels.begin(),vowels.end(),s[i])!= vowels.end())
state = 0;
else state = 1;
if(c==state) count_letters++;
if(count_letters == 3) {
count_letters = 1; //так как одна буква остается справа от разделяющей
count++;
}
}
cout << count;
}
- 20.06.2016 18:43
- thumb_up 16
Знаете ответ? Поделитесь им!
Есть сомнения?
Не нашли подходящего ответа на вопрос или ответ отсутствует? Воспользуйтесь поиском по сайту, чтобы найти все ответы на похожие вопросы в разделе Информатика.
Трудности с домашними заданиями? Не стесняйтесь попросить о помощи - смело задавайте вопросы!
Информатика — наука о методах и процессах сбора, хранения, обработки, передачи, анализа и оценки информации с применением компьютерных технологий, обеспечивающих возможность её использования для принятия решений.