Помогите понять формулировку

Я столкнулся с задачей где вообще не понимаю формулировку. Вот оно:

Структурные лингвисты называют особыми строки, начинающиеся и заканчивающиеся одним и тем же символом. Вам дана строка, состоящая из заглавных латинских букв, ваша задача - определить самую длинную её подстроку, являющуюся особой строкой, и вывести её длину. Напоминаем, что подстрока определяется как строка, составленная из элементов строки, начиная с i-го и заканчивая j-м. Если i<j, то подстрока пустая. Если i==j, подстрока состоит из одного символа. Если i совпадает с началом строки, а j - с концом, то подстрока совпадает с самой строкой.

Буду рад помощи с объяснением.


Ответы (1 шт):

Автор решения: MarianD

Примеры особых строк (из заглавных латинских букв):

  • ARIA
  • ROTATOR
  • DEFINED
  • XABCDEFGX

Примеры строк, которые не являются особыми, но содержат особую подстроку:

  • ZENARIAH
  • UNROTATOR (содержит тоже другие особые подстроки, напр. UNROTATOR)
  • PREDEFINEDTERM (тоже содержит и другие особые строки)
  • YZXABCDEFGXKLM

Ваша задача — определить самую длинную особую подстроку.

Когда вам дана строка, которая уже особая (как в первой части моих примеров), то она сама будет самой длинной её особой «подстрокой».

Самые длинные особые подстроки для второй части моих примеров:

  • для ZENARIAH:  ARIA
  • для UNROTATORROTATOR
  • для PREDEFINEDTERM:  REDEFINEDTER
  • для YZXABCDEFGXKLM:  XABCDEFGX

Как в Питоне найти такую подстроку?

Подстрока данной строки — начиная с i-го и заканчивая j-м символом — в Питоне записывается так:

original[i:j+1]

Один метод состоит в проверке всех таких подстрок, т.е. для всех пар (i, j) для i <= j, в диапазоне от (0, 0) до (длина_строки - 1, длина_строки - 1).

Такая подстрока является особой, когда original[i] == original[j].

→ Ссылка