Ctrl K

Два слова ближе всего

Лёгкая
Дан список слов words и два различных слова first и second, каждое из которых встречается в списке хотя бы один раз (возможно, несколько раз). Расстояние между позициями i и j равно |i - j|. Верните наименьшее расстояние между какой-нибудь позицией слова first и какой-нибудь позицией слова second.
Пример 1
words=['red', 'green', 'blue', 'red', 'yellow', 'blue'], first='red', second='blue' → 1

«red» стоит на позициях 0 и 3, «blue» — на 2 и 5. Ближе всего пара 3 и 2: расстояние 1.

Пример 2
words=['cat', 'dog', 'fox', 'owl'], first='owl', second='cat' → 3

Каждое слово встречается по разу, на позициях 3 и 0, — расстояние 3.

Ограничения
  • 2 ≤ len(words) ≤ 3 · 10⁴
  • 1 ≤ длина каждого слова ≤ 10
  • Слова состоят из строчных латинских букв
  • first и second есть в words
  • first ≠ second
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиСлова одного ряда ЛёгкаяГде поужинать вдвоём ЛёгкаяФразы со словами-синонимами ЛёгкаяСлово из букв автономера ЛёгкаяРазличные сигналы азбуки Морзе Лёгкая
загружаем Python…
Вход
words=['red', 'green', 'blue', 'red', 'yellow', 'blue'], first='red', second='blue'
Ожидается
1

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