Оптимизация маршрута

средне

Дан массив строк path, содержащий один из символов:

  • U - движение вверх
  • D - движение вниз
  • L - движение влево
  • R - движение вправо

Нужно избавиться от всех циклов в маршруте и вернуть любой маршрут без петель. Обрати внимание, что нужно именно сократить маршрут, а не сделать новый. При этом маршрут не обязан быть кратчайшим.

Под петлей в задаче подразумеваются части маршрута, которые возвращают нас в точку в которой мы были несколько шагов назад и убрав которые место прибытия не изменится.

Пример 1:

Ввод: path = ["R","D","L","U","R"]
Вывод: ["R"]
Пояснение: убираем петлю "R" "D" "L" "U", остаётся "R"

Пример 2:

Ввод: path = ["R","D","L","R","U","U","R","U","D"]
Вывод: ["R","U","R"]
Пояснение: убираем петли "DLRU" и "UD"

Пример 3:

Ввод: path = ["D","R","U"]
Вывод: ["D","R","U"]
Пояснение: петель нет, маршрут остаётся без изменений (срезать нельзя)

Ограничения:

  • len(path) >= 1