Ctrl K

Прокрутка букв по отрезкам

Средняя
Дана строка word из строчных латинских букв и список прокруток rolls, где rolls[i] = [start, end, direction]. Каждая прокрутка сдвигает все буквы с позиции start по позицию end включительно на одну букву: вперёд по алфавиту, если direction = 1, и назад, если direction = 0. Алфавит замкнут в круг: после 'z' идёт 'a', а перед 'a' — 'z'. Примените все прокрутки и верните получившуюся строку.
Пример 1
word='cat', rolls=[[0, 2, 1], [1, 1, 0]] → 'dau'

Сначала все три буквы сдвигаются вперёд: «dbu». Затем средняя — назад: «dau».

Пример 2
word='az', rolls=[[0, 0, 0], [1, 1, 1]] → 'za'

«a» сдвигается назад и по кругу становится «z», а «z» — вперёд и становится «a»: "za".

Пример 3
word='abc', rolls=[[0, 1, 1], [0, 1, 0]] → 'abc'

Сдвиг вперёд и сдвиг назад на одном отрезке гасят друг друга — строка не меняется.

Ограничения
  • 1 ≤ word.length, rolls.length ≤ 5·10⁴
  • rolls[i].length == 3
  • 0 ≤ start ≤ end < word.length
  • direction равно 0 или 1
  • word состоит из строчных латинских букв
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиПрокрутка букв по префиксам СредняяПалиндром после пары правок СредняяСобрать все шары в одной коробке СредняяКниги между подпорками СредняяМинуты на вывоз вторсырья Средняя
загружаем Python…
Вход
word='cat', rolls=[[0, 2, 1], [1, 1, 0]]
Ожидается
'dau'

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