Текстовые задачи: нормализация, разбор и проверка строк
Строка — это последовательность символов. В задачах по информатике строки используют для работы со словами, кодами, паролями, номерами, двоичными записями и текстовыми шаблонами.
Строку можно перебирать так же, как список:
word = input()
vowels = 'аеёиоуыэюя'
count = 0
for char in word.lower():
if char in vowels:
count += 1
print(count)Программа считает гласные буквы. Здесь важны две идеи: метод lower() приводит строку к нижнему регистру, а операция in проверяет наличие символа в наборе.
Полезные операции со строками
len(text)— длина строки;text[i]— символ по индексу;text[start:end]— срез;text.count(part)— количество вхождений;text.replace(old, new)— замена фрагмента;text.split()— разделение строки на слова.
Задачи на строки
Типовые школьные задачи: проверить палиндром, посчитать символы, найти самое длинное слово, заменить фрагменты, обработать двоичную строку, определить корректность кода.
text = input().replace(' ', '').lower()
if text == text[::-1]:
print('палиндром')
else:
print('не палиндром')Строка как конвейер преобразований
Надёжное решение разделяет три шага: нормализацию, проверку формата и подсчёт ответа. Нормализация убирает только те различия, которые условие объявило несущественными: например, регистр букв. Затем программа проверяет допустимые символы и длину, и лишь после этого преобразует фрагменты в числа или накапливает статистику.
Приём replace(' ', '') из примера подходит, только если пробелы действительно не влияют на ответ. В задаче о фиксированных позициях он сдвинет индексы и изменит данные. Аналогично, split() объединяет последовательности пробельных символов, а split(',') сохраняет пустое поле между двумя запятыми — для табличного формата это разные модели входа.
Полезный контрпример для проверки — строка, состоящая только из пробелов, или код AB-042 с лишним разделителем. Такие тесты показывают, не смешаны ли очистка входа и проверка его структуры.
Срез [::-1] строит строку в обратном порядке. Такой короткий прием полезен, но важно понимать идею: палиндром читается одинаково слева направо и справа налево.
Источники
- Босова Л.Л. Информатика. Базовый курс: учебник для 7-9 классов. - М.: БИНОМ. Лаборатория знаний.
- Поляков К.Ю., Еремин Е.А. Информатика. 10-11 классы. Углубленный уровень.
- Python Documentation: The Python Tutorial.