ท้าทาย
กำหนดสองสตริงในรูปแบบ I / O เริ่มต้นให้ทำดังต่อไปนี้:
หมายเหตุ: ความท้าทายจะอ้างถึงสตริงแรกว่า "ข้อมูล" และที่สองเรียกว่า "โปรแกรม"
- เปลี่ยนโปรแกรมเป็นสตริงที่ไม่มีที่สิ้นสุดซึ่งเป็นเพียงโปรแกรมที่ทำซ้ำไม่สิ้นสุด (เช่น
10
->1010101010...
) ความท้าทายจะอ้างถึงสิ่งนี้ว่า "โปรแกรมที่ไม่มีที่สิ้นสุด" ในขณะที่ข้อมูลไม่ว่างให้ทำดังต่อไปนี้ในขณะที่วนซ้ำโปรแกรมที่ไม่มีที่สิ้นสุด:
หากคำสั่งปัจจุบันคือ "0" ให้ลบบิตซ้ายสุดในข้อมูล หากข้อมูลว่างเปล่า "0" จะไม่ทำอะไรเลย
ข หากคำสั่งปัจจุบันคือ "1" ให้ผนวกอักขระตัวถัดไปในโปรแกรมเข้ากับข้อมูลหากบิตซ้ายสุดในข้อมูลเป็นหนึ่ง
ค. ถ้าข้อมูลไม่ว่างตอนนี้ให้เอาท์พุทข้อมูล
กรณีทดสอบ
Data เป็นด้านซ้ายของอินพุตและโปรแกรมเป็นด้านขวา
100, 0 --> 00, 0
1111, 1 --> 11111, 111111, 1111111, ...
10, 011 --> 0, 0, 0
1110, 011 --> 110, 1101, 11010, 1010...
หมายเหตุ
- ข้อมูลและโปรแกรมจะประกอบด้วย 0 และ 1 เท่านั้น
- สำหรับข้อมูล / โปรแกรมที่ไม่หยุดทำงานโปรแกรมของคุณไม่จำเป็นต้องหยุดทำงาน
- ข้อมูลและโปรแกรมจะไม่ว่างเปล่าในอินพุต
- คุณอาจมีหลายบรรทัดและขึ้นบรรทัดใหม่
- ช่องโหว่มาตรฐานเป็นสิ่งต้องห้าม
- คุณสามารถใช้รูปแบบ I / O ที่สะดวกใด ๆ
เช่นเดียวกับรหัสกอล์ฟ , ที่สั้นที่สุดชนะรหัส !
100
ไป10
ที่ cmd 0
ซึ่งคำจำกัดความคือ "ลบบิตซ้ายสุดในข้อมูล" จะไม่บิตซ้ายสุดของ100
เป็น1
?