Регистрация
Войти
Стать экспертом Правила
Информатика

Пожалуйста посчитайте,ПЖЛ!желательно C++ или паскаль(но мне хоть как-нибудь)Все буквы латинского алфавита делятся на гласные и согласные. Гласными буквами являются: a, e, i, o, u, y. Остальные буквы являются согласными.Слово называется благозвучным, если в этом слове не встречается больше двух согласных букв подряд и не встречается больше двух гласных букв подряд. Например, слова abba, mama, program — благозвучные, а слова aaa, school, search — неблагозвучные.Вводится слово. Если это слово является неблагозвучным, то разрешается добавлять в любые места этого слова любые буквы. Определите, какое минимальное количество букв можно добавить в это слово, чтобы оно стало благозвучным.Входные данныеВводится слово, состоящее только из маленьких латинских букв. Длина слова не превышает 30 символов.Выходные данныеВыведите минимальное число букв, которые нужно добавить в это слово, чтобы оно стало благозвучным.Комментарии к примерам тестов1. Слово уже является благозвучным.2. Достаточно добавить одну гласную букву, например, между буквами sи сПримерывходные данныеprogramвыходные данные0входные данныеschoolвыходные данные1

ОТВЕТЫ
#include <vector>
#include <algorithm> 
using namespace std;
 int main() {
    string s; 
   vector<char> 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;
}
449
Контакты
Реклама на сайте
Спрошу
О проекте
Новым пользователям
Новым экспертам