PHP 224, 218, 210 206
foreach(explode(",","I19SR,9ZY8H,,CNK,5JRU0,H,CN4,G0H,H160,CN4,75,CU9,AMIHD,MTQP,HQOXK,7L,74,G,CXS,CU9,HTOG,,CNK,MHA8,CNL,1")as$a){$b++;for($c=0;$c<26;$c++)echo base_convert($a,36,10)&pow(2,$c)?chr(96+$b).chr(97+$c)." ":"";}
aa ab ad ae ag ah ai al am an ar as at aw ax ay ba be bi bo by de do ed ef eh el em en er es et ex fa fe go ha he hi hm ho id if in is it jo ka ki la li lo ma me mi mm mo mu my na ne no nu od oe of oh oi om on op or os ow ox oy pa pe pi qi re sh si so ta ti to uh um un up us ut we wo xi xu ya ye yo za
ไม่ใช่คะแนนที่ยอดเยี่ยม แต่ฉันชอบความท้าทาย
ฉันสร้างตารางตัวเลือกสร้างระบบ bitwise เพื่อตั้งค่าสถานะตัวเลือกที่ถูกต้อง
จากนั้นฉันฐาน -36 เข้ารหัสตัวเลือกเหล่านั้นเพื่อรับสตริง:
"I19SR,9ZY8H,,CNK,5JRU0,H,CN4,G0H,H160,CN4,75,CU9,AMIHD,MTQP,HQOXK,7L,74,G,CXS,CU9,HTOG,,CNK,MHA8,CNL,1"
โปรดสังเกตว่ารายการที่ 3 ในอาร์เรย์สตริงนั้นไม่มีค่าเนื่องจาก C ไม่มีตัวเลือก
เพื่อพิมพ์ค่าฉันแค่แปลงตัวเลือกที่ถูกต้องให้เป็นตัวอักษร
อาจมีบางสิ่งที่ฉันสามารถทำได้เพื่อลดการรับรู้ว่าไม่มีคำที่ลงท้ายด้วย C, J, K, Q, V หรือ Z แต่ฉันไม่สามารถคิดวิธีที่จะลดมันได้
โดยการแปลงตารางมีองค์ประกอบที่ว่างเปล่ามากขึ้นและข้อมูลจะเข้ารหัสเพิ่มขึ้นอีกเล็กน้อยซึ่งย่อมาจากไม่กี่ไบต์ ตอนนี้อาร์เรย์จะถูกพิมพ์ตามลำดับอื่น:
foreach(explode(",","UB1YB,1,,CUP,CLMEJ,CUO,1,SG0H,5J9MR,,,H,MX01,MTXT,CYO5M,MTQ8,,CNL,MTXT,MHAP,50268,,CN5,CNL,FSZ,,")as$a){$b++;for($c=0;$c<26;$c++)echo base_convert($a,36,10)&pow(2,$c)?chr(97+$c).chr(96+$b)." ":"";}
aa ba fa ha ka la ma na pa ta ya za ab ad ed id od ae be de fe he me ne oe pe re we ye ef if of ag ah eh oh sh uh ai bi hi ki li mi oi pi qi si ti xi al el am em hm mm om um an en in on un bo do go ho jo lo mo no so to wo yo op up ar er or as es is os us at et it ut mu nu xu aw ow ax ex ox ay by my oy
ขอบคุณ Ismael สำหรับการระเบิดและคำแนะนำการวนซ้ำ
foreach(explode(3,UB1YB3133CUP3CLMEJ3CUO313SG0H35J9MR333H3MX013MTXT3CYO5M3MTQ833CNL3MTXT3MHAP35026833CN53CNL3FSZ)as$d)for($e++,$f=0;$f<26;$f++)echo base_convert($d,36,10)&pow(2,$f)?chr(97+$f).chr(96+$e)." ":"";
ด้วยการอัปเดตเป็น php5.6 คุณpow(,)
สามารถแทนที่ได้ด้วย**
การบันทึกอีก 4 ไบต์
foreach(explode(3,UB1YB3133CUP3CLMEJ3CUO313SG0H35J9MR333H3MX013MTXT3CYO5M3MTQ833CNL3MTXT3MHAP35026833CN53CNL3FSZ)as$d)for($e++,$f=0;$f<26;$f++)echo base_convert($d,36,10)&2**$f?chr(97+$f).chr(96+$e)." ":"";