เพื่อนของฉันและฉันมีเกมนี้ที่เราเล่นด้วยคำพูด มันเป็นงานอดิเรกที่สนุกและเกี่ยวข้องกับตัวอักษร "ยกเลิก" ในคำจนกว่าจะไม่มีอะไรเหลือ ฉันเหนื่อยกับการที่เขาเร็วกว่าฉันมากดังนั้นจึงเป็นหน้าที่ของคุณที่จะนำไปใช้และให้ฉันเอาชนะเขาในที่สุด เห็นได้ชัดว่าเนื่องจากฉันต้องทำให้โปรแกรมเป็นเรื่องง่ายที่จะซ่อนมันเป็นไปได้มันต้องมีขนาดเล็กที่สุด
เกมนี้ทำงานอย่างไร
เกมนี้เป็นอัลกอริธึมที่ค่อนข้างง่าย มันลดสตริงตัวอักษรจนกว่าจะไม่สามารถลดได้อีกดังนั้นจึงเป็นแฮช เกมจริงที่มนุษย์เราทำนั้นยากมากที่จะนำมาใช้ แต่มันสามารถทำให้เป็นอัลกอริทึมต่อไปนี้ได้ง่ายขึ้น:
คุณเริ่มต้นด้วยการพับตัวอักษรครึ่งตัวและเรียงสองชิ้นดังนี้:
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ว่างเปล่า ...