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
Chắc chắn không phải là một điểm số tuyệt vời, nhưng tôi thích thử thách.
Tôi tạo một bảng các tùy chọn, tạo một hệ thống bitwise để đánh dấu các tùy chọn nào là hợp lệ.
Sau đó, tôi cơ sở-36 đã mã hóa các tùy chọn đó để có được chuỗi:
"I19SR,9ZY8H,,CNK,5JRU0,H,CN4,G0H,H160,CN4,75,CU9,AMIHD,MTQP,HQOXK,7L,74,G,CXS,CU9,HTOG,,CNK,MHA8,CNL,1"
Lưu ý mục nhập thứ 3 trong mảng chuỗi đó không có giá trị, vì C không có tùy chọn.
Để in các giá trị, tôi chỉ cần chuyển đổi các tùy chọn hợp lệ thành ký tự.
Có thể có một vài điều tôi có thể làm để giảm nhận ra rằng không có từ nào kết thúc bằng C, J, K, Q, V hoặc Z, nhưng tôi không thể nghĩ ra một phương pháp để giảm atm.
Bằng cách hoán chuyển bảng, có nhiều phần tử trống hơn và dữ liệu mã hóa gọn hơn một chút, loại bỏ một vài byte. Mảng hiện được in theo thứ tự khác:
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
Cảm ơn Ismael cho sự bùng nổ và gợi ý vòng lặp.
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)." ":"";
Với bản cập nhật cho php5.6, pow(,)
có thể được thay thế bằng cách **
lưu thêm 4 byte.
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)." ":"";