เลขย่อ (ยังเป็นที่รู้จักกันในชื่อ "หดตัวเลข") คือเมื่อเป็นคำที่สั้นลงโดยใช้ตัวเลข วิธีการหดตัวทั่วไปคือการใช้ความยาวของสตริงย่อยที่ถูกแทนที่เพื่อแทนที่ทั้งหมดยกเว้นอักขระตัวแรกและตัวสุดท้าย ตัวอย่างเช่นใช้i18nแทนinternationalizationหรือL10nlocalizationแทน (ตัวLพิมพ์ใหญ่นั้นเป็นตัวพิมพ์เล็กเนื่องจากตัวพิมพ์เล็กมีลักษณะคล้ายกับ1)
แน่นอนว่าคำหลายคำในวลีเดียวกันอาจมีรูปแบบย่อเหมือนกันดังนั้นงานของคุณคือการแปลงกลุ่มคำเป็นตัวเลขหรือในกรณีที่มีคำต่างๆ ที่มีตัวเลขเหมือนกันโปรแกรมของคุณควรให้ ผลลัพธ์ของA7s R4tย่อมาจากAmbiguous Result(ใช่ฉันรู้ว่าผลลัพธ์นี้เป็นผลลัพธ์ที่คลุมเครือ)
กฎ:
- ใช้โปรแกรมหรือฟังก์ชั่นแล้วพิมพ์หรือส่งคืนผลลัพธ์
- อินพุตถูกใช้เป็นสตริงเดี่ยว
- เอาต์พุตเป็นสตริงของคำที่คั่นด้วยช่องว่าง
- โปรแกรมของคุณไม่จำเป็นต้องแปลงคำที่มีความยาว 3 และไม่ควรแปลงคำที่สั้นกว่านี้
- หาก
l(ell ตัวพิมพ์เล็ก) จะเกิดขึ้นก่อน1(หนึ่ง) มันควรจะเป็นตัวพิมพ์ใหญ่ - หาก
I(ตาตัวพิมพ์ใหญ่) จะเกิดขึ้นก่อน1(หนึ่ง) ควรเป็นตัวพิมพ์เล็ก - อินพุตจะเป็น ASCII ที่พิมพ์ได้และช่องว่าง คำถูกคั่นด้วยช่องว่าง
- รหัสที่สั้นที่สุดชนะ
ตัวอย่าง:
A7s R4t -> A7s R4t (OR: A1s R1t, etc)
Ambiguous Result -> A7s R4t
Billy goats gruff -> B3y g3s g3f
Thanks for the Memories -> T4s f1r the M6s (one possible answer, NOT: Thnks fr th Mmrs)
Programming Puzzles & Code Golf -> P9g P5s & C2e G2f
globalization -> g11n
localizability -> L12y
Internationalization or antidisestablishmentarianism -> i18n or a26m
Internationalization or InternXXXXXalization -> A7s R4t
what is this fiddle and faddle -> A7s R4t
A be see -> A be s1e (OR: A be see)
see sea -> s1e s1a (OR: see sea)
2B or not 2B -> 2B or not 2B (OR: 2B or n1t 2B. 2 letters, don't change, don't count as ambiguous)
this example is this example -> t2s e5e is t2s e5e (same words aren't ambiguous)
l1 -> l1 (2 letters, don't change.)
I1 -> I1 (2 letters, don't change.)
แก้ไข: หากใครไม่ได้รับการอ้างอิง: Thnks fr th Mmrs
example exampleจะเป็นe5e e5eแต่มันจะดีที่จะรวมถึงกรณีทดสอบซึ่งครอบคลุมนี้
2B or not 2Bและหลังจากนั้น)
l1กลายเป็นL1หรืออยู่เป็นl1?