JustCaptain kod-buduschego
7efceb421dbc5c7b77700ed9dbec228ce6d15358
Перейти к файлу
Код
kod-buduschego C++Тема 1.6. Массивы и строкиЗадачиПрактика.md
anc add theme 1.5, 1.6 7efceb4 4 дня назад
Практика.md

🧑🏫 Практика#

Задачи, которые решаем на занятиях.


Задача 1. Количество гласных букв#

Условие#

Дана строка, состоящая из латинских букв (строчных и заглавных) и пробелов. Определите, сколько в ней гласных букв.

Гласными считаются буквы A, E, I, O, U, Y и соответствующие строчные a, e, i, o, u, y.

Входные данные#

Одна строка.

Выходные данные#

Одно число — количество гласных букв.

Примеры#

Ввод:

Hello World

Вывод:

3

Ввод:

Programming

Вывод:

3

Заметка

В строке есть пробел, поэтому читать её нужно через getline(cin, text): cin >> text прочитает только Hello. Дальше перебираем символы text[i] и сравниваем каждый с гласными через ||.


Задача 2. Самая длинная серия#

Условие#

Дан массив целых чисел. Найдите длину самой длинной последовательности одинаковых подряд идущих элементов.

Входные данные#

В первой строке вводится число N (1 ≤ N ≤ 1000). Во второй строке — N целых чисел.

Выходные данные#

Одно число — длина самой длинной серии.

Пример#

Ввод:

10
4 4 4 2 2 7 7 7 7 1

Вывод:

4

Заметка

Серии: 4 4 4 (длина 3), 2 2 (2), 7 7 7 7 (4), 1 (1). Самая длинная — 4. Сравнивайте a[i] с a[i - 1], поэтому цикл начинается с i = 1, а начальные current и max_len равны 1: даже один элемент — это серия.


Задача 3. Лишняя буква#

Условие#

Даны две строки. Определите, сколько различных букв встречается в первой строке, но отсутствует во второй.

Входные данные#

Две строки из строчных латинских букв, каждая на отдельной строке.

Выходные данные#

Одно число.

Пример#

Ввод:

abracadabra
bar

Вывод:

2

Заметка

В первой строке есть буквы a, b, r, c, d, во второй — только a, b, r. Отсутствуют c и d. Чтобы не посчитать одну букву дважды, отмечайте уже учтённые буквы в массиве bool used[26] = {false}; по индексу c - 'a'.


Задача 4. Самый частый символ#

Условие#

Дана строка из строчных латинских букв. Определите символ, который встречается в ней чаще всего. Если таких символов несколько, выведите тот, который раньше стоит в алфавите.

Входные данные#

Одна строка.

Выходные данные#

Один символ.

Пример#

Ввод:

mississippi

Вывод:

i

Заметка

Буквы i и s встречаются по 4 раза, но i раньше в алфавите. Подсчитайте частоты в массиве int cnt[26] = {0}; и найдите индекс максимума. Сравнение строго >, а не >=: тогда при равенстве останется буква с меньшим индексом. Вывод: char('a' + maxIdx).


Задача 5. Локальные максимумы#

Условие#

Дан массив целых чисел. Элемент называется локальным максимумом, если он строго больше обоих своих соседей. Первый и последний элементы локальными максимумами не считаются.

Выведите количество локальных максимумов.

Входные данные#

В первой строке вводится число N (1 ≤ N ≤ 1000). Во второй строке — N целых чисел.

Выходные данные#

Одно число — количество локальных максимумов.

Пример#

Ввод:

7
1 5 2 4 3 6 1

Вывод:

3

Заметка

Локальные максимумы — 5, 4 и 6. Цикл идёт от i = 1 до i < n - 1, иначе обращение к a[i - 1] или a[i + 1] выйдет за границы массива. Если N < 3, цикл не выполнится ни разу и ответ равен 0.