Descargo de responsabilidad: La historia contada dentro de esta pregunta es completamente ficticia e inventada únicamente con el propósito de proporcionar una introducción.
Mi jefe ha conseguido un nuevo robot de juguete y quiere que lo ayude a programarlo. Quiere poder ingresar instrucciones de flechas simples para que se mueva. Estas instrucciones son: ^ (para avanzar) <(para girar a la izquierda) y> (para girar a la derecha). Sin embargo, ahora que he programado el robot, quiere una funcionalidad adicional. Quiere que transforme cualquier secuencia de flechas que ingrese, de modo que en lugar de que el robot tome la ruta indicada, se mueva a la ubicación deseada, indicada por el lugar donde terminaría si hubiera tomado la ruta ingresada, tan eficientemente como posible. Les pido a ustedes, los miembros de PP&CG, que me ayuden con esta tarea.
Tu tarea:
Escriba un programa o función para convertir una cadena formada por flechas en una cadena que llegue a la ubicación indicada por la entrada lo más rápido posible. Girar lleva exactamente el mismo tiempo que retroceder o avanzar.
Entrada:
Una cadena de flechas, como se indicó anteriormente. Si lo desea, las flechas pueden sustituir diferentes caracteres, pero asegúrese de incluir el hecho de que lo hace en su respuesta. Todos los casos de prueba usan las flechas normalmente.
Salida:
Una serie de flechas (o sus caracteres equivalentes) que llevan al robot al destino deseado de la manera más eficiente posible.
Casos de prueba:
Tenga en cuenta que las soluciones ofrecidas son solo posibilidades, y que otras soluciones pueden ser válidas.
>^<<^^>^^ -> ^^<^
^^^^>^^^^ -> ^^^^>^^^^
>>>^^^^^^ -> <^^^^^^
>^>^>^>^ -> (empty string)
^<^^<^^<^^^^ -> >^^>^
Tanteo:
La memoria del robot es limitada, por lo que su programa debe tener el recuento de bytes más bajo posible.
^<^^<^^<^^^^
-> >^^>^
?