นี่เป็นคำถามที่คล้ายกันที่ฉันถามในรุ่นก่อนหน้านี้แต่ฉันคิดว่ามันเป็นปริศนาที่น่าสนใจ
รับสายอักขระที่มีความยาว 10 ซึ่งแทนหมายเลขฐาน 36 เพิ่มทีละหนึ่งและส่งคืนสตริงผลลัพธ์
ซึ่งหมายความว่าสายจะมีเพียงตัวเลขจาก0
ไป9
และตัวอักษรจากไปa
z
ฐาน 36 ทำงานดังนี้:
ตัวเลขที่ถูกต้องที่สุดคือการเพิ่มค่าครั้งแรกโดยใช้0
เพื่อ9
0000000000> 9 ซ้ำ> 0000000009
และหลังจากนั้นa
จะz
ใช้:
000000000a> 25 ซ้ำ> 000000000z
หากz
ต้องการเพิ่มค่ามันจะย้อนกลับไปที่ศูนย์และตัวเลขทางด้านซ้ายจะเพิ่มขึ้น:
000000010
กฎเพิ่มเติม:
- คุณสามารถใช้อักษรตัวพิมพ์ใหญ่หรือเล็กก็ได้
- คุณไม่สามารถวางเลขศูนย์นำหน้าได้ ทั้งอินพุตและเอาต์พุตเป็นสตริงที่มีความยาว 10
- คุณไม่จำเป็นต้องจัดการ
zzzzzzzzzz
เป็นอินพุต
กรณีทดสอบ:
"0000000000" -> "0000000001"
"0000000009" -> "000000000a"
"000000000z" -> "0000000010"
"123456zzzz" -> "1234570000"
"00codegolf" -> "00codegolg"
"0zzzzzzzzz"
(แก้ไขตัวเลขที่สำคัญที่สุด) เป็นกรณีทดสอบ มันเพิ่มขึ้นโซลูชัน C ของฉันเนื่องจากข้อผิดพลาดที่ละครั้ง