問題 #2 - 回答 #152
Base32
RFC 4648 で定義された Base32 エンコーディングを実装してください。 標準入力から与えられる各行に対し、Base32 エンコードをおこなった文字列を標準出力へ改行区切りで出力してください。 なお、アルファベットの出力には大文字を用いてください。
回答 #152
ticknical が 2024-03-09 14:39:27 に投稿
コード
327 byte
const TABLE = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ234567';
while($line=fgets(STDIN)){$line=rtrim($line);$bits='';for($i=0;$i<strlen($line);$i++){$bits.=str_pad(base_convert(ord($line[$i]),10,2),8,0,0);}echo chunk_split(strtr($bits,'01',TABLE),8,''),match(strlen($bits)%40){8=>'======',16=>'====',24=>'===',32=>'=',default=>''},PHP_EOL;}
実行結果
ステータス: 失敗
テストケース 1
ステータス: 不正解
標準出力
ABBABAAAABBABBBBABBAABBBABBAABAB=
ABBBAAAAABBABAABABBBBAABABBABBBB=
ABBAABBAABBBABABABBAABBBABBAAAAB=
標準エラー出力
テストケース 2
ステータス: 不正解
標準出力
BBBAAABBBAAAAAABBAAAABBABBBAAABBBAAAAAABBAAABABBBBBAAABBBAAAAABABAAABABABBBAAABBBAAAAAABBABABBBBBBBAAABBBAAAAAABBAABAABA
BBBAAABBBAAAAAABBABABABABBBAAABBBAAAAAABBAAABBAABBBAAABBBAAAAABABAAABAABBBBAAABBBAAAAAABBAAAABBABBBAAABBBAAAAAABBAABABBB
BBBAAABBBAAAAABABAAABBBBBBBAAABBBAAAAAABBAABBAABBBBAAABBBAAAAABABAAABAABBBBAAABBBAAAAABABAAAAABABBBAAABBBAAAAAABBABAAAAB
標準エラー出力
テストケース 3
ステータス: 不正解
標準出力
AABBAAABAABBAABAAABBAABBAABBABAAAABBABABAABBABBAAABBABBB====
AABBAAABAABBAABA====
AABBAAABAABBAABAAABBAABBAABBABAAAABBABABAABBABBAAABBABBBAABBBAAAAABBBAABAABBAAAA
AABBAAABAABBAABAAABBAABBAABBABAAAABBABABAABBABBAAABBABBBAABBBAAA===
AABBAAABAABBAABAAABBAABB===
AABBAAABAABBAABAAABBAABBAABBABAAAABBABAB
AABBAAABAABBAABAAABBAABBAABBABAAAABBABABAABBABBAAABBABBBAABBBAAAAABBBAAB=
AABBAAABAABBAABAAABBAABBAABBABAA=
AABBAAAB======
AABBAAABAABBAABAAABBAABBAABBABAAAABBABABAABBABBA======
標準エラー出力
テストケース 4
ステータス: 不正解
標準出力
ABBAAAABAABAAAAAABBAAABAAABAAAAAABBAAABB
AABAAAAAAABAAAAABBBAAABBBAAAAAABBAAAAABABBBAAABBBAAAAAABBAAAABAAAABAAAAABBBAAABBBAAAAAABBAAAABBAAABAAAAABBBAAABBBAAAAAABBAAABAAAAABAAAAABBBAAABBBAAAAAABBAAABABA
標準エラー出力