Відмова: Історія, розказана в цьому питанні, є повністю вигаданою та придумана виключно для того, щоб забезпечити вступ.
Мій бос придбав нового іграшкового робота, і він хоче, щоб я допоміг його програмувати. Він хоче мати можливість ввести прості вказівки зі стрілками, щоб змусити її рухатися. Це вказівки: ^ (для руху вперед) <(для повороту вліво) та> (для повороту праворуч). Однак тепер, коли я запрограмував робота, він хоче додаткової функціональності. Він хоче, щоб я перетворив будь-яку послідовність стрілок, які він вводить, щоб замість того, щоб робот пройшов вказаний шлях, він переміщується до потрібного місця, вказаного місцем, яке б у кінцевому підсумку було б, якби він пройшов введений шлях так само ефективно, як можливо. Я звертаюся до вас, члени PP&CG, щоб допомогти мені у виконанні цього завдання.
Ваше завдання:
Напишіть програму або функцію для перетворення рядка, що складається зі стрілок, у рядок, який максимально швидко дістанеться до місця, вказаного вхідним даним. Поворот займає рівно стільки, скільки рухається назад або вперед.
Вхід:
Рядок зі стрілками, як зазначено вище. За бажанням стрілки можуть бути замінені різними символами, але обов'язково включіть той факт, що ви це зробите у своїй відповіді. У всіх тестових випадках звичайно використовуються стрілки.
Вихід:
Рядок зі стрілками (або вашими еквівалентними символами), які максимально ефективно переносять робота до потрібного пункту призначення.
Випробування:
Зауважте, що пропоновані рішення є лише можливостями, а інші рішення можуть бути дійсними.
>^<<^^>^^ -> ^^<^
^^^^>^^^^ -> ^^^^>^^^^
>>>^^^^^^ -> <^^^^^^
>^>^>^>^ -> (empty string)
^<^^<^^<^^^^ -> >^^>^
Оцінка:
Пам'ять робота обмежена, тому у вашій програмі повинен бути найменший кількість можливих байтів.
^<^^<^^<^^^^
-> >^^>^
?