Menulis sebuah program yang berjalan melalui string karakter non-spasi (Anda mungkin menganggap bahwa mereka adalah digit 0
ke 9
, tapi tidak dalam cara mereka untuk diproses tergantung pada ini) dan menambah ruang sesuai dengan aturan berikut.
- Biarkan token saat ini menjadi string kosong, dan token yang dipancarkan sebelumnya menjadi set kosong.
- Iterasi melalui karakter string. Untuk setiap karakter, pertama tambahkan karakter ke token saat ini. Kemudian jika token saat ini belum ada di set token yang dipancarkan sebelumnya, tambahkan token saat ini ke set itu dan biarkan token saat ini menjadi string kosong.
- Jika ketika Anda mencapai akhir string token saat ini kosong, output token yang dipancarkan sebelumnya dalam urutan emisi, dipisahkan oleh karakter spasi. Kalau tidak, output string asli kata demi kata.
Memasukkan
Input ke STDIN harus berupa urutan digit.
Keluaran
Program harus mencetak hasilnya seperti yang ditentukan pada langkah 3.
Sampel
Input sampel
2015
10101010
4815162342
101010101010
3455121372425
123456789101112131415
314159265358979323846264338327950288419716939937
Output sampel
2 0 1 5
10101010
4 8 1 5 16 2 3 42
1 0 10 101 01 010
3 4 5 51 2 1 37 24 25
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
3 1 4 15 9 2 6 5 35 8 97 93 23 84 62 64 33 83 27 95 0 28 841 971 69 39 937
Ini adalah kode golf, jadi aturan standar CG berlaku. Program terpendek dalam byte menang.
(Silakan minta klarifikasi dalam komentar. Saya masih baru dalam hal ini. Terima kasih!)
1 0 10
, iterasi berikutnya akan menemukan 1
(sudah digunakan), kemudian memajukan satu untuk menemukan 10
(sudah digunakan), lalu memajukan satu untuk menemukan 101
, yang baru dan akan 'ditambahkan'. Kemudian akan menambahkan spasi dan Anda akan mendapatkan yang baru 0
, yang telah digunakan, tetapi di sini di akhir string. Oleh karena itu, output akan menjadi 1 0 10 101 0
, yang tidak valid ( 0
diulang), dan skrip kemudian harus hanya output string input. Itu hanya bisa membuat 1010
jika 101
sudah digunakan.
If a unique number cannot be formed at the end of the string, then the input should be printed verbatim
10101010 tidak dapat dibagi sehingga dicetak seperti apa adanya.
1
, yang akan menjadi pengulangan. Jadi alih-alih Anda memindahkan yang benar di ruang 5, dan kemudian Anda memindahkan yang benar lagi di langkah 4, dan Anda memasukkan langkah 5 lagi dan membuat 101
.
4815162342
Saya melihat apa yang Anda lakukan di sana, brotha .