В
Все
Б
Биология
Б
Беларуская мова
У
Українська мова
А
Алгебра
Р
Русский язык
О
ОБЖ
И
История
Ф
Физика
Қ
Қазақ тiлi
О
Окружающий мир
Э
Экономика
Н
Немецкий язык
Х
Химия
П
Право
П
Психология
Д
Другие предметы
Л
Литература
Г
География
Ф
Французский язык
М
Математика
М
Музыка
А
Английский язык
М
МХК
У
Українська література
И
Информатика
О
Обществознание
Г
Геометрия
pkeuakkaukuakk
pkeuakkaukuakk
27.12.2020 14:46 •  Информатика

Желательно c++ или паскаль(но мне хоть как-нибудь) все буквы латинского алфавита делятся на гласные и согласные. гласными буквами являются: a, e, i, o, u, y. остальные буквы являются согласными. слово называется благозвучным, если в этом слове не встречается больше двух согласных букв подряд и не встречается больше двух гласных букв подряд. например, слова abba, mama, program — благозвучные, а слова aaa, school, search — неблагозвучные. вводится слово. если это слово является неблагозвучным, то разрешается добавлять в любые места этого слова любые буквы. определите, какое минимальное количество букв можно добавить в это слово, чтобы оно стало благозвучным. входные данные вводится слово, состоящее только из маленьких латинских букв. длина слова не превышает 30 символов. выходные данные выведите минимальное число букв, которые нужно добавить в это слово, чтобы оно стало благозвучным. комментарии к примерам тестов 1. слово уже является благозвучным. 2. достаточно добавить одну гласную букву, например, между буквами s и с примеры входные данные program выходные данные 0 входные данные school выходные данные 1

Показать ответ
Ответ:
2017МегаМозг2017
2017МегаМозг2017
05.10.2020 03:09
#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;
}
0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота