Avertissement: L'histoire racontée dans cette question est entièrement fictive et inventée uniquement dans le but de fournir une intro.
Mon patron a acheté un nouveau robot jouet et il veut que je l'aide à le programmer. Il veut pouvoir saisir des instructions de flèche simples pour le faire bouger. Ces instructions sont: ^ (pour aller de l'avant) <(pour tourner à gauche) et> (pour tourner à droite). Cependant, maintenant que j'ai programmé le robot, il veut des fonctionnalités supplémentaires. Il veut que je transforme toute séquence de flèches qu'il entre, de sorte que plutôt que de demander au robot de prendre le chemin indiqué, il se déplace vers l'emplacement souhaité, indiqué par l'endroit où il se retrouverait s'il avait pris le chemin entré, aussi efficacement que possible. Je fais appel à vous, membres de PP&CG, pour m'aider dans cette tâche.
Ta tâche:
Écrivez un programme ou une fonction pour convertir une chaîne composée de flèches en une chaîne qui arrivera à l'emplacement indiqué par l'entrée le plus rapidement possible. Le virage prend exactement le temps de reculer ou d'avancer.
Contribution:
Une chaîne de flèches, comme indiqué ci-dessus. Si vous le souhaitez, différents caractères peuvent être substitués aux flèches, mais assurez-vous d'inclure le fait que vous le faites dans votre réponse. Tous les cas de test utilisent normalement les flèches.
Sortie:
Une chaîne de flèches (ou vos caractères équivalents), qui emmènent le robot vers la destination souhaitée aussi efficacement que possible.
Cas de test:
Notez que les solutions proposées ne sont que des possibilités et que d'autres solutions peuvent être valides.
>^<<^^>^^ -> ^^<^
^^^^>^^^^ -> ^^^^>^^^^
>>>^^^^^^ -> <^^^^^^
>^>^>^>^ -> (empty string)
^<^^<^^<^^^^ -> >^^>^
Notation:
La mémoire du robot est limitée, donc votre programme doit avoir le plus petit nombre d'octets possible.
^<^^<^^<^^^^
-> >^^>^
?