Ctrl K

Самый длинный общий блок

Лёгкая
Скажем, что строка t **порождает** строку s, если s получается записью t подряд один или несколько раз: s = t + t + … + t. Даны строки first и second. Верните самую длинную строку, которая порождает обе. Если такой нет, верните пустую строку.
Пример 1
first='XYXYXYXY', second='XYXY' → 'XYXY'

Обе строки собираются из блока XYXY (дважды и один раз), и длиннее блока нет.

Пример 2
first='KKKKKK', second='KKKK' → 'KK'

KK повторяется 3 и 2 раза; блок KKKK не подходит — из него не собрать шесть букв.

Пример 3
first='ABA', second='AB' → ''

Общего блока нет, ответ — пустая строка.

Ограничения
  • 1 ≤ len(first), len(second) ≤ 1000
  • Строки состоят из заглавных латинских букв
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиЗначение римского числа ЛёгкаяСумма двоичных строк ЛёгкаяБуква столбца по номеру ЛёгкаяНомер столбца по букве ЛёгкаяСчиталка тройками и пятёрками Лёгкая
загружаем Python…
Вход
first='XYXYXYXY', second='XYXY'
Ожидается
'XYXY'

«Запустить» — первые 3 теста у тебя в браузере, «Отправить» — все 175 тестов на сервере, включая скрытые.