จงเขียนโปรแกรมที่ต้องผ่านสายอักขระที่ไม่ใช่ช่องว่างที่ (คุณอาจคิดว่าพวกเขาจะมีตัวเลข0
ไป9
แต่ไม่มีอะไรในทางที่พวกเขาจะได้รับการประมวลผลขึ้นอยู่กับเรื่องนี้) และเพิ่มช่องว่างตามกฎต่อไปนี้
- ให้โทเค็นปัจจุบันเป็นสตริงว่างและโทเค็นที่ปล่อยออกมาก่อนหน้านี้เป็นชุดว่าง
- วนซ้ำตามตัวอักษรของสตริง สำหรับอักขระแต่ละตัวก่อนอื่นให้เพิ่มอักขระต่อโทเค็นปัจจุบัน จากนั้นหากโทเค็นปัจจุบันไม่ได้อยู่ในชุดโทเค็นที่ปล่อยออกมาก่อนหน้านี้ให้เพิ่มโทเค็นปัจจุบันไปยังชุดนั้นและปล่อยให้โทเค็นปัจจุบันใหม่เป็นสตริงว่าง
- หากเมื่อถึงจุดสิ้นสุดของสายโทเค็นปัจจุบันจะว่างเปล่าให้ส่งสัญญาณโทเค็นที่ปล่อยออกมาก่อนหน้านี้ตามลำดับของการปล่อยโดยคั่นด้วยอักขระเว้นวรรค มิฉะนั้นเอาท์พุทคำต่อคำสตริงเดิม
อินพุต
อินพุตไปยัง STDIN ควรเป็นลำดับของตัวเลข
เอาท์พุต
โปรแกรมควรพิมพ์ผลลัพธ์ตามที่ระบุไว้ในขั้นตอนที่ 3
ตัวอย่าง
อินพุตตัวอย่าง
2015
10101010
4815162342
101010101010
3455121372425
123456789101112131415
314159265358979323846264338327950288419716939937
ตัวอย่างผลลัพธ์
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
นี่คือรหัสกอล์ฟเพื่อใช้กฎ CG มาตรฐาน โปรแกรมที่สั้นที่สุดในหน่วยไบต์ชนะ
(โปรดขอคำชี้แจงใด ๆ ในความคิดเห็นฉันยังใหม่กับเรื่องนี้ขอบคุณ!)
1 0 10
แล้วการทำซ้ำครั้งต่อไปจะค้นหา1
(ใช้แล้ว) จากนั้นเลื่อนไปหนึ่งรายการเพื่อค้นหา10
(ใช้แล้ว) จากนั้นเลื่อนไปหนึ่งรายการเพื่อค้นหา101
ซึ่งเป็นของใหม่และจะเป็น 'เพิ่ม' จากนั้นจะเพิ่มช่องว่างและคุณจะไปที่ใหม่0
ซึ่งถูกใช้แล้ว แต่อยู่ที่ท้ายสตริง ดังนั้นเอาต์พุตจะเป็น1 0 10 101 0
ซึ่งไม่ถูกต้อง ( 0
ถูกทำซ้ำ) และสคริปต์จะต้องส่งออกสตริงอินพุต มันสามารถทำได้เฉพาะ1010
ถ้า101
มีการใช้แล้ว
If a unique number cannot be formed at the end of the string, then the input should be printed verbatim
10101010 ไม่สามารถแยกดังนั้นจึงพิมพ์ตามที่เป็น
1
ซึ่งจะเป็นการทำซ้ำ ดังนั้นแทนที่จะคุณย้ายหนึ่งที่เหมาะสมในพื้นที่ 5 แล้วคุณย้ายหนึ่งที่เหมาะสมอีกครั้งในขั้นตอนที่ 4 และคุณป้อนขั้นตอนที่ 5 101
อีกครั้งและสร้าง
4815162342
ผมเห็นสิ่งที่คุณทำมีbrotha