Ctrl K

Расстояние до ближайшей метки

Лёгкая
Дана строка text и буква mark, которая встречается в text хотя бы один раз. Для каждой позиции i строки найдите, как далеко от неё ближайшее вхождение буквы mark. Расстояние между позициями i и j равно |i - j|; если на позиции i стоит сама mark, расстояние равно 0. Верните список длины len(text), где i-й элемент — это расстояние для позиции i.
Пример 1
text='banana', mark='n' → [2, 1, 0, 1, 0, 1]

Буква n стоит на позициях 2 и 4. От позиции 0 до ближайшей n два шага, от позиции 3 — один шаг в любую сторону, от последней позиции 5 — один шаг назад.

Пример 2
text='zzzq', mark='q' → [3, 2, 1, 0]

Единственная q в самом конце, поэтому расстояния просто убывают к ней: 3, 2, 1, 0.

Пример 3
text='x', mark='x' → [0]
Ограничения
  • 1 ≤ len(text) ≤ 10⁵
  • text и mark состоят из строчных латинских букв, mark — ровно одна буква
  • mark встречается в text
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиРяд по подъёмам и спадам ЛёгкаяСклеено из первых слов ЛёгкаяПервое слово-перевёртыш ЛёгкаяПодпоследовательность только одного слова СредняяСамое длинное слово вычёркиванием Средняя
загружаем Python…
Вход
text='banana', mark='n'
Ожидается
[2, 1, 0, 1, 0, 1]

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