Ctrl K

Кратчайшее окно с подпоследовательностью

Сложная
Даны строки text и pattern. Найдите самую короткую подстроку text (непрерывный кусок), в которой pattern встречается как подпоследовательность — то есть все буквы pattern идут в ней в том же порядке, но не обязательно подряд. Если таких подстрок минимальной длины несколько, верните ту, что начинается левее всех. Если подходящей подстроки нет, верните пустую строку "".
Пример 1
text='abxbcab', pattern='bc' → 'bc'

Окно «bxbc» тоже содержит «bc» как подпоследовательность, но «bc» с позиции 3 короче.

Пример 2
text='adbaeb', pattern='ab' → 'adb'

Подходят «adb» и «aeb» одинаковой длины 3; берём то, что начинается левее.

Пример 3
text='abc', pattern='ca' → ''

После буквы c в тексте нет буквы a, так что подходящего окна нет.

Ограничения
  • 1 ≤ text.length ≤ 2 · 10⁴
  • 1 ≤ pattern.length ≤ 100
  • text и pattern состоят из строчных латинских букв
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиПрыжки по целым плиткам СредняяЧередование после прокрутки СредняяПодрезать и нарастить слово СредняяШаблон с точкой и звёздочкой СложнаяБлоки слов в любом порядке Сложная
загружаем Python…
Вход
text='abxbcab', pattern='bc'
Ожидается
'bc'

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