Ctrl K

Буква в растущем слове

Сложная
Слово начинается как "a" и растёт по шагам из массива steps. На каждом шаге к слову справа приписывается его копия: - если steps[i] == 0, копия точная; - если steps[i] == 1, в копии каждая буква заменена на следующую по алфавиту (после z идёт снова a). Например, "az" превращается в "azba". После всех шагов длина слова — 2^len(steps). Верните букву, стоящую на месте position (нумерация с единицы). Число position бывает очень большим, так что строить слово целиком не получится.
Пример 1
position=6, steps=[1, 1, 0] → 'b'

"a" → "ab" → "abbc" → "abbcabbc". Шестая буква — "b".

Пример 2
position=4, steps=[0, 0] → 'a'

Буквы не сдвигаются: слово "aaaa", на любом месте "a".

Пример 3
position=8, steps=[1, 1, 1] → 'd'

"a" → "ab" → "abbc" → "abbcbccd". Последняя буква — "d".

Ограничения
  • 1 ≤ len(steps) ≤ 100
  • steps[i] равно 0 или 1
  • 1 ≤ position ≤ 10¹⁴
  • После всех шагов в слове не меньше position букв
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиРовно степень двойки ЛёгкаяРовно степень четвёрки ЛёгкаяУдваивающиеся строки из нулей и единиц СредняяСтрока, которая копирует себя ЛёгкаяK-й порядок цифр Сложная
загружаем Python…
Вход
position=6, steps=[1, 1, 0]
Ожидается
'b'

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