Задача 9: Кратчайшее расстояние до целевого символа

Напишите определение функции shortestToChar(s, c), которая принимает строку s (состоящую из строчных латинских букв) и символ c, который гарантированно содержится в строке s. Функция должна вернуть массив целых чисел answer, где длина answer равна длине строки s, а answer[i] — это расстояние от индекса i до ближайшего вхождения символа c в строке s.

Расстояние между двумя индексами i и j определяется как abs(i - j), где abs — функция абсолютного значения.

Примеры:

Пример 1:

Ввод:
s = "loveleetcode", c = "e"
Вывод:
[3,2,1,0,1,0,0,1,2,2,1,0]

Пояснение:
Символ 'e' встречается на позициях 3, 5, 6 и 11 (нумерация начинается с 0).
Для каждого индекса в строке вычисляется расстояние до ближайшего вхождения 'e':

  • Для индекса 0: ближайший 'e' находится на позиции 3, расстояние abs(0 - 3) = 3.
  • Для индекса 1: ближайший 'e' находится на позиции 3, расстояние abs(1 - 3) = 2.
  • Для индекса 4: расстояние до 'e' на позициях 3 и 5 одинаковое: abs(4 - 3) == abs(4 - 5) = 1.
  • Аналогично вычисляются остальные расстояния.

Пример 2:

Ввод:
s = "aaab", c = "b"
Вывод:
[3,2,1,0]

Пояснение:
Символ 'b' встречается только на позиции 3. Расстояния до неё:

  • Индекс 0: расстояние abs(0 - 3) = 3.
  • Индекс 1: расстояние abs(1 - 3) = 2.
  • Индекс 2: расстояние abs(2 - 3) = 1.
  • Индекс 3: расстояние abs(3 - 3) = 0.

0

Вы должны Войти или Зарегистрироваться чтобы оставлять комментарии