Редакция для Подсчёт гласных в строке


Remember to use this editorial only when stuck, and not to copy-paste code from it. Please be respectful to the problem author and editorialist.
Submitting an official solution before solving the problem yourself is a bannable offence.

Автор: montes332

1. Идея

Нужно посчитать, сколько символов строки являются гласными.

Для этого достаточно:

  • прочитать слово s;
  • завести счётчик;
  • пройти по всем символам строки;
  • если текущий символ равен одной из букв a, e, i, o, u, увеличить счётчик;
  • вывести ответ.

Это простая задача на работу со строкой и цикл.

2. Наблюдения

  1. Слово состоит только из строчных латинских букв, значит проверять нужно только строчные гласные.
  2. Гласных всего пять: a, e, i, o, u.
  3. Каждый символ можно обработать независимо от остальных.
  4. Длина строки не больше 1000, поэтому обычный проход по строке полностью подходит.

3. Алгоритм

  1. Считать строку s.
  2. Создать переменную count = 0.
  3. Для каждого символа c в строке:
    • если c равен a, e, i, o или u, увеличить count на 1.
  4. Вывести count.

4. Почему это работает

Алгоритм просматривает каждый символ слова ровно один раз.

  • Если символ — гласная, мы увеличиваем счётчик.
  • Если символ — согласная, ничего не делаем.

Так как мы проверяем все символы строки и прибавляем ровно по одному за каждую гласную, итоговое значение count будет в точности равно количеству гласных букв в слове.

5. Сложность

Пусть длина строки равна n.

  • Время работы: O(n), потому что строка проходится один раз.
  • Память: O(1), если не считать память на хранение самой строки.

6. Код на C++17

#include <iostream>
#include <string>

using namespace std;

int main() {
    string s;
    cin >> s;

    int count = 0;
    for (char c : s) {
        if (c == 'a' || c == 'e' || c == 'i' || c == 'o' || c == 'u') {
            count++;
        }
    }

    cout << count << '\n';
    return 0;
}

7. Код на Python 3

s = input()

count = 0
for c in s:
    if c == 'a' or c == 'e' or c == 'i' or c == 'o' or c == 'u':
        count += 1

print(count)

Комментарии

Еще нет ни одного комментария.