Ctrl K

Фишки, которые ездят в одну сторону

Средняя
На узкой дорожке из клеток стоят фишки двух видов. Раскладка записана строкой: L — фишка, которая умеет ездить только влево, R — только вправо, _ — пустая клетка. За один ход любая фишка сдвигается на одну клетку в своём направлении, но только если эта соседняя клетка пуста. Перепрыгивать через другие фишки нельзя, выезжать за край дорожки тоже. Даны две раскладки одинаковой длины: current и goal. Верните True, если из current можно получить goal за любое число ходов (в том числе ноль), иначе False.
Пример 1
current="R__L_", goal="_R_L_" → True

Фишку R достаточно сдвинуть на одну клетку вправо, L остаётся на месте.

Пример 2
current="_RL__", goal="__RL_" → False

Чтобы попасть на своё место, L пришлось бы ехать вправо, а это запрещено.

Пример 3
current="L__R", goal="_LR_" → False

Обе фишки должны двигаться против своего направления — недостижимо.

Ограничения
  • 1 ≤ len(current) = len(goal) ≤ 10⁵
  • Строки состоят только из символов L, R и _
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиСамый длинный зеркальный кусок СредняяСлова в обратном порядке СредняяРовно одна правка СредняяКакая версия новее СредняяОбратный порядок слов на месте Средняя
загружаем Python…
Вход
current="R__L_", goal="_R_L_"
Ожидается
True

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