เพื่อนของฉันและฉันมีเกมนี้ที่เราเล่นด้วยคำพูด มันเป็นงานอดิเรกที่สนุกและเกี่ยวข้องกับตัวอักษร "ยกเลิก" ในคำจนกว่าจะไม่มีอะไรเหลือ ฉันเหนื่อยกับการที่เขาเร็วกว่าฉันมากดังนั้นจึงเป็นหน้าที่ของคุณที่จะนำไปใช้และให้ฉันเอาชนะเขาในที่สุด เห็นได้ชัดว่าเนื่องจากฉันต้องทำให้โปรแกรมเป็นเรื่องง่ายที่จะซ่อนมันเป็นไปได้มันต้องมีขนาดเล็กที่สุด
เกมนี้ทำงานอย่างไร
เกมนี้เป็นอัลกอริธึมที่ค่อนข้างง่าย มันลดสตริงตัวอักษรจนกว่าจะไม่สามารถลดได้อีกดังนั้นจึงเป็นแฮช เกมจริงที่มนุษย์เราทำนั้นยากมากที่จะนำมาใช้ แต่มันสามารถทำให้เป็นอัลกอริทึมต่อไปนี้ได้ง่ายขึ้น:
คุณเริ่มต้นด้วยการพับตัวอักษรครึ่งตัวและเรียงสองชิ้นดังนี้:
a b c d e f g h i j k l m
z y x w v u t s r p q o n
จากนั้นเริ่มจากตรงกลางคุณกำหนดจำนวนเต็มบวกให้กับครึ่งบนและลบไปที่ด้านล่าง:
a b c d e f g h i j k l m
13 12 11 10 9 8 7 6 5 4 3 2 1
z y x w v u t s r p q o n
-13 -12 -11 -10 -9 -8 -7 -6 -5 -4 -3 -2 -1
จากนั้นคุณใช้สตริงของคุณ (เราจะใช้hello world
) และละเว้นอักขระที่ไม่ใช่ตัวอักษรใด ๆ แปลมัน:
h e l l o w o r l d
6 9 2 2 -2 -10 -2 -5 2 10
จากนั้นคุณรวมค่าตัวอักษร คนที่เรียงรายขึ้นในแผนภาพก่อนหน้านี้ (เช่นd
และw
, l
และo
) จะยกเลิกการออกในขณะที่คนอื่น ๆ จะเพิ่มขึ้น
sum(6 9 2 2 -2 -10 -2 -5 2 10 )=12
12 คือหมายเลขสำหรับb
ดังนั้นแฮชของhello world
คือb
สำหรับคำว่าสมบูรณ์ยกเลิกออก (เช่นlove
), คุณเอาท์พุท "0 -
ตัวละคร": โปรดทราบว่าในการป้อนข้อมูล-
จะยังคงถูกมองข้าม มันเป็นเรื่องสำคัญในการส่งออกเท่านั้น
หากขนาดของตัวเลขมีขนาดใหญ่กว่า 13 คุณจะเริ่มเพิ่มจำนวนa
ของคุณและz
ของคุณโดยทั่วไปจะมีจำนวนมากa
หรือz
พอดีกับตัวเลขและนำสิ่งที่เหลือไว้ในจดหมายฉบับสุดท้ายดังนี้:
code golf: 43.
เหมาะกับ 3 a
และมี 4 เหลือ:
aaa 4: j
result: aaaj
คำแนะนำ: ส่วนนี้จะเป็นพื้นdivmod
ยกเว้นว่ามันรอบไปทางศูนย์ไม่ได้-infinity
(เช่น -43 จะกลายเป็น 3 z
'และและ-4
ซึ่งเป็นp
เช่นนั้นzzzp
)
หมายเหตุ: รีบไม่ได้มาถ้าa
'หรือz
' s พอดีอย่างสมบูรณ์แบบ 0
แต่ถ้ามันเป็นสิ่ง
ชี้แจง:
- กัญชาเป็นกรณีในความละเอียดอ่อน
- ไม่อนุญาตช่องโหว่มาตรฐาน
- I / O สามารถอยู่ในรูปแบบใด ๆ ที่ไม่ต่างชาติเกินไป stdin, stdout, ARG บรรทัดคำสั่งฟังก์ชัน ฯลฯ
- นี่คือรหัสกอล์ฟขนาดเพื่อให้สั้นที่สุดในไบต์ชนะ
ตัวอย่าง:
hello world --> b
love --> -
this is an example --> aak
hello *&*(&(*&%& world --> b
good bye --> ae
root users --> zzs
love
ว่างเปล่า ...