Помогите понять формулировку
Я столкнулся с задачей где вообще не понимаю формулировку. Вот оно:
Структурные лингвисты называют особыми строки, начинающиеся и заканчивающиеся одним и тем же символом. Вам дана строка, состоящая из заглавных латинских букв, ваша задача - определить самую длинную её подстроку, являющуюся особой строкой, и вывести её длину. Напоминаем, что подстрока определяется как строка, составленная из элементов строки, начиная с i-го и заканчивая j-м. Если i<j, то подстрока пустая. Если i==j, подстрока состоит из одного символа. Если i совпадает с началом строки, а j - с концом, то подстрока совпадает с самой строкой.
Буду рад помощи с объяснением.
Ответы (1 шт):
Примеры особых строк (из заглавных латинских букв):
- ARIA
- ROTATOR
- DEFINED
- XABCDEFGX
Примеры строк, которые не являются особыми, но содержат особую подстроку:
- ZENARIAH
- UNROTATOR (содержит тоже другие особые подстроки, напр. UNROTATOR)
- PREDEFINEDTERM (тоже содержит и другие особые строки)
- YZXABCDEFGXKLM
Ваша задача — определить самую длинную особую подстроку.
Когда вам дана строка, которая уже особая (как в первой части моих примеров), то она сама будет самой длинной её особой «подстрокой».
Самые длинные особые подстроки для второй части моих примеров:
- для ZENARIAH:
ARIA - для UNROTATOR:
ROTATOR - для PREDEFINEDTERM:
REDEFINEDTER - для YZXABCDEFGXKLM:
XABCDEFGX
Как в Питоне найти такую подстроку?
Подстрока данной строки — начиная с i-го и заканчивая j-м символом — в Питоне записывается так:
original[i:j+1]
Один метод состоит в проверке всех таких подстрок, т.е. для всех пар (i, j) для i <= j, в диапазоне от (0, 0) до (длина_строки - 1, длина_строки - 1).
Такая подстрока является особой, когда original[i] == original[j].