💪🏻 Решение 24 задания через разбивку на слова
#99днейдоегэ
На данный способ помимо здравого смысла указывает и кодификатор, в приложении к которому указано следующее:
"Алгоритмы анализа символьных строк, в том числе: подсчёт количества появлений символа в строке; разбиение строки на слова по пробельным символам; поиск подстроки внутри данной строки; замена найденной подстроки на другую строку".
Посмотрим несколько примеров на заданиях с сайта К.Ю.Полякова.
✅ 4924
Текстовый файл 24-197.txt содержит строку из заглавных латинских букв X, Y и Z, всего не более чем из 10^6 символов. Определите максимальное количество идущих подряд троек символов ZXY или ZYX.
Алгоритм:
1) заменяем ZXY И ZYX на символ, которого нет в файле (например 1),
2) заменяем все оставшиеся допустимые символы на пробелы,
3) разделяем строку на слова и ищем максимальную длину.
✅ 4917
Текстовый файл 24-191.txt содержит строку из заглавных латинских букв, всего не более чем из 10^6 символов. Определите количество подстрок длиной не менее 20 символов, которые начинаются буквой A, заканчиваются буквой B и не содержат других букв A и B, кроме первой и последней.
Алгоритм:
1) Ставим пробелы перед А и после В.
2) Разделяем строку на слова и фильтруем слова по условию (начало А, конец В).
3) Находим количество длину.
✅ 4753
Текстовый файл 24-181.txt содержит строку из заглавных латинских букв и точек, всего не более 10^6 символов. Определите максимальное количество идущих подряд символов, среди которых нет гласных букв (символов A, E, I, O, U, Y), но есть не менее 6 точек.
Алгоритм:
1) Заменяем A, E, I, O, U, Y на пробелы,
2) Разбиваем строку на слова и фильтруем по условию,
3) Находим максимальную длину.
✅ 4524
Текстовый файл 24-181.txt содержит строку из заглавных латинских букв и точек, всего не более 10^6 символов. Определите максимальное количество идущих подряд символов, среди которых не более одной точки.
Алгоритм:
1) Разбиваем строку на слова по символу точки и определяем длины получившихся слов,
2) Находим максимальную сумму длин двух рядом стоящих слов,
3) Добавляем 1 (точка между)
✅ 2715
Текстовый файл 24-j7.txt состоит не более чем из 10^6 десятичных цифр. Найдите максимальную длину последовательности, которая состоит из цифр одинаковой четности. Например, в последовательности 1533244622185452354, 5 последовательностей с нечетными цифрами: 1533, 1, 5, 5, 35; и 5 с четными: 244622, 8, 4, 2, 4. Следовательно, искомая последовательность – 244622. В качестве ответа укажите максимальную длину найденной последовательности.
Алгоритм:
1) Переберем все рядом стоящие пары, если в паре четность элементов разная, то добавим в накапливаемый список второй элемент с предшествующим пробелом,
2) Соединим полученный список в строку и разобьем её по пробелам,
3) найдем максимальную длину полученных слов.
✅ 3750
Текстовый файл 24-157.txt состоит не более чем из 10^6 символов и содержит только заглавные буквы латинского алфавита (ABC…Z). Определите символ, который чаще всего встречается в файле между двумя одинаковыми символами. Например, в тексте CCBAABABCBC есть комбинации ABA, BAB, BCB и CBC. Чаще всего – 2 раза – между двумя одинаковыми символами стоит B, в ответе для этого случая надо написать B2 (без пробелов и других разделителей). Если таких символов несколько, выведите тот, который стоит раньше в алфавите.
Алгоритм:
1) Перебираем тройки символов и сохраняем нужные средние,
2) Сортируем найденные символы и вставляем пробел между разными,
3) Соединяем в строку, бьем по пробелу и сортируем по убыванию длины и возрастанию символа,
4) Выводим первый символ первого слова и его длину.