Boşluk olmayan karakter dizesi geçer bir program yazın (eğer onlar rakam olduğunu kabul edebilir 0
üzere 9
, ancak bunlar işlenecek olan şekilde hiçbir şey buna bağlıdır) ve aşağıdaki kurallara göre boşluk ekler.
- Geçerli jetonun boş dize olmasına izin verin ve önceden verilen jetonlar boş bir küme olsun.
- Dizenin karakterlerini yineleyin. Her karakter için, önce karakteri geçerli tokene ekleyin. Ardından, geçerli belirteç önceden yayınlanmış belirteçlerin kümesinde değilse, geçerli belirteci bu kümeye ekleyin ve yeni geçerli belirtecin boş dize olmasına izin verin.
- Dizenin sonuna ulaştığınızda geçerli belirteç boşsa, daha önce yayımlanan belirteçleri emisyon sırasına, boşluk karakteriyle ayırarak çıkarın. Aksi takdirde orijinal dize verbatim çıktı.
Giriş
STDIN girişi, bir rakam dizisi olmalıdır.
Çıktı
Program sonucu 3. adımda belirtilen şekilde yazdırmalıdır.
Numuneler
Örnek girişler
2015
10101010
4815162342
101010101010
3455121372425
123456789101112131415
314159265358979323846264338327950288419716939937
Örnek çıktılar
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
Bu kod golf, yani standart CG kuralları geçerlidir. Bayt cinsinden en kısa program kazanır.
(Lütfen yorumlarda açıklama talebinde bulunun. Bu konuda hala yeniyim. Teşekkürler!)
1 0 10
tekrarladığınızda, bir sonraki yineleme bulur 1
(zaten kullanılır), sonra bulmak için birini 10
(zaten kullanılmış), daha sonra bulmak için birini 101
, hangisinin yeni olduğunu ve 'eklenir'. Daha sonra bir boşluk ekler ve 0
daha önce kullanılmış olan, ancak dizgenin sonunda olan yeni bir öğeye gelirsiniz . Bu nedenle, çıktı 1 0 10 101 0
geçersiz olur ( 0
tekrarlanır) ve komut dosyası daha sonra sadece girdi dizesini çıktılar. Sadece yapabilir 1010
eğer 101
zaten kullanılmaya başlanmış.
If a unique number cannot be formed at the end of the string, then the input should be printed verbatim
10101010 bölünemez, böylece olduğu gibi yazdırılır.
1
olacaktır, bu da tekrar olacaktır. Bunun yerine, 5. boşlukta sağa doğru hareket edersiniz ve ardından 4. adımda tekrar sağa hareket edersiniz ve tekrar 5. adıma girip yaratın 101
.
4815162342
Orada ne yaptığını anladım, kardeşim .