Период строки
Период строки — это длина наименьшего фрагмента, который, повторяясь несколько раз, образует всю строку. Например, строка abcabcabc имеет период 3: её повторяющийся фрагмент — abc.
Как находить период
Проверяют длины \(p\) от 1 до длины строки. Для выбранного \(p\) сравнивают каждый символ с символом, расположенным на \(p\) позиций левее. Если все сравнения успешны, найден период. Первый подходящий вариант — минимальный период. Часто удобно мысленно разбить строку на одинаковые подстроки длины \(p\).
Рассмотрим строку ababab. При \(p=2\) получаем фрагмент ab, повторённый три раза: ab|ab|ab. При \(p=1\) соседние символы не совпадают, поэтому минимальный период равен 2. У строки aaaa периодами являются 1, 2, 3 и 4, но минимальный период — 1.
Период — это длина фрагмента, а сам фрагмент — последовательность символов. Для xyzxyz период равен 3, а повторяющийся фрагмент равен xyz. Кроме того, строка может иметь период, даже если длина строки не делится на него полностью: у abababa число 2 является периодом по правилу сравнения соседних символов, хотя строка не состоит из целого числа блоков ab. Подробнее о связанных задачах см. повторяющиеся фрагменты.
Каков минимальный период строки cabca?
c с c и a с a; меньшие длины не подходят.При программной проверке периодов важно сравнивать только существующие пары символов. Период помогает выполнять сравнение строк и распознавать структуру повторяющихся данных.
Главное
- Период — длина повторяющегося фрагмента или расстояние, на котором совпадают символы.
- Минимальный период — наименьшая положительная длина, удовлетворяющая условию совпадения.
- Период и сам повторяющийся фрагмент — разные понятия: одно является числом, другое — строкой.