36 lines
1.1 KiB
PHP
36 lines
1.1 KiB
PHP
$key2val = ["A"=>"30", "B"=>"31", "C"=>"32", "D"=>"33", "E"=>"5", "F"=>"34", "G"=>"35",
|
|
"H"=>"0", "I"=>"36", "J"=>"37", "K"=>"38", "L"=>"2", "M"=>"4", "."=>"78", "N"=>"39",
|
|
"/"=>"79", "O"=>"1", "0"=>"790", "P"=>"70", "1"=>"791", "Q"=>"71", "2"=>"792",
|
|
"R"=>"8", "3"=>"793", "S"=>"6", "4"=>"794", "T"=>"9", "5"=>"795", "U"=>"72",
|
|
"6"=>"796", "V"=>"73", "7"=>"797", "W"=>"74", "8"=>"798", "X"=>"75", "9"=>"799",
|
|
"Y"=>"76", "Z"=>"77"];
|
|
|
|
$val2key = array_flip($key2val);
|
|
|
|
function encode(string $s) : string {
|
|
global $key2val;
|
|
|
|
$callback = function($c) use ($key2val) { return $key2val[$c] ?? ''; };
|
|
|
|
return implode(array_map($callback, str_split(strtoupper($s))));
|
|
}
|
|
|
|
function decode(string $s) : string {
|
|
global $val2key;
|
|
|
|
$callback = function($c) use ($val2key) { return $val2key[$c] ?? ''; };
|
|
|
|
preg_match_all('/79.|7.|3.|./', $s, $m);
|
|
|
|
return implode(array_map($callback, $m[0]));
|
|
}
|
|
|
|
function main($s) {
|
|
$encoded = encode($s);
|
|
echo $encoded;
|
|
echo "\n";
|
|
echo decode($encoded);
|
|
}
|
|
|
|
main('One night-it was on the twentieth of March, 1888-I was returning');
|