Penafian: Kisah yang diceritakan dalam pertanyaan ini sepenuhnya fiktif, dan diciptakan semata-mata untuk tujuan memberikan intro.
Bos saya mendapatkan robot mainan baru, dan dia ingin saya membantu memprogramnya. Dia ingin dapat memasukkan instruksi panah sederhana untuk membuatnya bergerak. Instruksi ini adalah: ^ (untuk bergerak maju) <(untuk belok kiri), dan> (untuk belok kanan). Namun, sekarang saya sudah memprogram robot, dia ingin fungsionalitas tambahan. Dia ingin saya mengubah urutan panah apa pun yang dia input, sehingga daripada memiliki robot mengambil jalur yang ditunjukkan, itu bergerak ke lokasi yang diinginkan, ditunjukkan oleh tempat itu akan berakhir jika telah mengambil jalur yang dimasukkan, seefisien mungkin. Saya menghimbau Anda, para anggota PP&CG, untuk membantu saya dengan tugas ini.
Tugas Anda:
Tulis program atau fungsi untuk mengubah string yang terbuat dari panah menjadi string yang akan sampai ke lokasi yang ditunjukkan oleh input secepat mungkin. Memutar membutuhkan waktu selama bergerak mundur atau maju.
Memasukkan:
Sederetan panah, seperti ditunjukkan di atas. Jika Anda mau, karakter yang berbeda dapat diganti dengan panah, tetapi pastikan untuk memasukkan fakta bahwa Anda melakukannya dalam jawaban Anda. Semua test case menggunakan panah secara normal.
Keluaran:
String panah (atau karakter setara Anda), yang membawa robot ke tujuan yang diinginkan seefisien mungkin.
Kasus uji:
Perhatikan bahwa solusi yang ditawarkan hanya kemungkinan, dan bahwa solusi lain mungkin valid.
>^<<^^>^^ -> ^^<^
^^^^>^^^^ -> ^^^^>^^^^
>>>^^^^^^ -> <^^^^^^
>^>^>^>^ -> (empty string)
^<^^<^^<^^^^ -> >^^>^
Mencetak:
Memori robot terbatas, jadi program Anda harus memiliki jumlah byte serendah mungkin.
^<^^<^^<^^^^
-> >^^>^
?