Haftungsausschluss: Die Geschichte, die in dieser Frage erzählt wird, ist vollständig fiktiv und wurde ausschließlich zum Zweck der Bereitstellung eines Intro erfunden.
Mein Chef hat einen neuen Spielzeugroboter bekommen und möchte, dass ich ihn programmiere. Er möchte in der Lage sein, einfache Pfeilanweisungen einzugeben, um es zum Bewegen zu bringen. Diese Anweisungen lauten: ^ (vorwärts bewegen) <(links abbiegen) und> (rechts abbiegen). Jetzt, da ich den Roboter programmiert habe, möchte er zusätzliche Funktionen. Er möchte, dass ich jede Folge von Pfeilen, die er eingibt, transformiere, damit der Roboter den angezeigten Pfad nicht nimmt, sondern sich an den gewünschten Ort bewegt, der durch den Ort angegeben wird, an dem er enden würde, wenn er den eingegebenen Pfad genommen hätte, so effizient wie möglich. Ich appelliere an Sie, die Mitglieder von PP & CG, mir bei dieser Aufgabe zu helfen.
Deine Aufgabe:
Schreiben Sie ein Programm oder eine Funktion, um eine Zeichenfolge aus Pfeilen in eine Zeichenfolge umzuwandeln, die so schnell wie möglich an die von der Eingabe angegebene Position gelangt. Das Drehen dauert genauso lange wie das Vor- oder Zurückbewegen.
Eingang:
Eine Reihe von Pfeilen, wie oben angegeben. Wenn Sie möchten, können die Pfeile durch andere Zeichen ersetzt werden. Achten Sie jedoch darauf, dass Sie dies in Ihre Antwort einbeziehen. In allen Testfällen werden die Pfeile normalerweise verwendet.
Ausgabe:
Eine Reihe von Pfeilen (oder Ihren entsprechenden Zeichen), die den Roboter so effizient wie möglich zum gewünschten Ziel bringen.
Testfälle:
Beachten Sie, dass die angebotenen Lösungen nur Möglichkeiten sind und dass andere Lösungen möglicherweise gültig sind.
>^<<^^>^^ -> ^^<^
^^^^>^^^^ -> ^^^^>^^^^
>>>^^^^^^ -> <^^^^^^
>^>^>^>^ -> (empty string)
^<^^<^^<^^^^ -> >^^>^
Wertung:
Der Arbeitsspeicher des Roboters ist begrenzt, daher muss Ihr Programm die niedrigstmögliche Bytezahl haben.
^<^^<^^<^^^^
-> >^^>^
?