Disclaimer: la storia raccontata all'interno di questa domanda è del tutto inventata e inventata esclusivamente allo scopo di fornire un'introduzione.
Il mio capo ha ottenuto un nuovo robot giocattolo e vuole che lo aiuti a programmarlo. Vuole essere in grado di inserire semplici istruzioni a freccia per farlo muovere. Queste istruzioni sono: ^ (per andare avanti) <(per girare a sinistra) e> (per girare a destra). Tuttavia, ora che ho programmato il robot, desidera funzionalità aggiuntive. Vuole che trasformi qualsiasi sequenza di frecce che inserisce, in modo che, anziché fare in modo che il robot prenda il percorso indicato, si sposta nella posizione desiderata, indicata dal punto in cui sarebbe finita se avesse preso il percorso immesso, in modo efficiente come possibile. Mi rivolgo a voi, membri di PP&CG, per aiutarmi in questo compito.
Il tuo compito:
Scrivi un programma o una funzione per convertire una stringa composta da frecce in una stringa che raggiungerà la posizione indicata dall'input il più rapidamente possibile. La rotazione richiede esattamente il tempo di muoversi avanti o indietro.
Ingresso:
Una serie di frecce, come indicato sopra. Se lo desideri, i caratteri diversi possono essere sostituiti con le frecce, ma assicurati di includere il fatto che lo fai nella tua risposta. Tutti i casi di test usano normalmente le frecce.
Produzione:
Una serie di frecce (o caratteri equivalenti) che portano il robot alla destinazione desiderata nel modo più efficiente possibile.
Casi test:
Si noti che le soluzioni offerte sono solo possibilità e che altre soluzioni potrebbero essere valide.
>^<<^^>^^ -> ^^<^
^^^^>^^^^ -> ^^^^>^^^^
>>>^^^^^^ -> <^^^^^^
>^>^>^>^ -> (empty string)
^<^^<^^<^^^^ -> >^^>^
punteggio:
La memoria del robot è limitata, quindi il programma deve avere il conteggio di byte più basso possibile.
^<^^<^^<^^^^
-> >^^>^
?