問題 #2 - 回答 #20

Base32

RFC 4648 で定義された Base32 エンコーディングを実装してください。 標準入力から与えられる各行に対し、Base32 エンコードをおこなった文字列を標準出力へ改行区切りで出力してください。 なお、アルファベットの出力には大文字を用いてください。

回答 #20

yamamoto-hiroya が 2024-03-07 23:25:32 に投稿

コード

446 byte

const A='ABCDEFGHIJKLMNOPQRSTUVWXYZ234567';
while($l=trim(fgets(STDIN))){
  $b=$c='';
  for($i=0;$i++<strlen($l);){
    $b.=str_pad(base_convert(strval(ord($l[$i])),10,2),8,'0',STR_PAD_LEFT);
  }
  $c='';
  foreach (str_split($b, 5) as $b) {
    $c .= A[base_convert(str_pad($b, 5, '0'), 2, 10)];
  }
  $c .= match (strlen($b) % 40) {
    8 => '======',
    16 => '====',
    24 => '===',
    32 => '=',
    default => '',
  };
  echo $c, "\n";
}

実行結果

ステータス: 失敗

テストケース 1

ステータス: 不正解

標準出力


Warning: Uninitialized string offset 4 in php.wasm code on line 10
N5TWKAA

Warning: Uninitialized string offset 4 in php.wasm code on line 10
NF4W6AA

Warning: Uninitialized string offset 4 in php.wasm code on line 10
OVTWCAA

標準エラー出力


テストケース 2

ステータス: 不正解

標準出力


Warning: Uninitialized string offset 15 in php.wasm code on line 10
QGDOHAML4OBIVY4BV7RYDEQA

Warning: Uninitialized string offset 15 in php.wasm code on line 10
QGVOHAMM4OBITY4BQ3RYDFYA

Warning: Uninitialized string offset 15 in php.wasm code on line 10
QKH6HAMZ4OBITY4CQLRYDIIA

標準エラー出力


テストケース 3

ステータス: 不正解

標準出力


Warning: Uninitialized string offset 7 in php.wasm code on line 10
GIZTINJWG4AA

Warning: Uninitialized string offset 2 in php.wasm code on line 10
GIAA

Warning: Uninitialized string offset 10 in php.wasm code on line 10
GIZTINJWG44DSMAA

Warning: Uninitialized string offset 8 in php.wasm code on line 10
GIZTINJWG44AA

Warning: Uninitialized string offset 3 in php.wasm code on line 10
GIZQA

Warning: Uninitialized string offset 5 in php.wasm code on line 10
GIZTINIA

Warning: Uninitialized string offset 9 in php.wasm code on line 10
GIZTINJWG44DSAA

Warning: Uninitialized string offset 4 in php.wasm code on line 10
GIZTIAA

Warning: Uninitialized string offset 1 in php.wasm code on line 10
AA

Warning: Uninitialized string offset 6 in php.wasm code on line 10
GIZTINJWAA

標準エラー出力


テストケース 4

ステータス: 不正解

標準出力


Warning: Uninitialized string offset 5 in php.wasm code on line 10
EBRCAYYA

Warning: Uninitialized string offset 18 in php.wasm code on line 10
QGBOHAMEEDRYDBRA4OAYQIHDQGFAA

標準エラー出力