- https://www.codewars.com/kata/5ef9ca8b76be6d001d5e1c3e Error correction #1 - Hamming Code.
Started at 23:56 02.11.2020 Monday Nov.
Finished at 23:35 03.11.2020 Tuesday Nov. (23hrs 39minutes)
<?php | |
# https://www.codewars.com/kata/5ef9ca8b76be6d001d5e1c3e Error correction #1 - Hamming Code. | |
function encode($text){ | |
if(empty($text)) return ''; | |
$a = str_split($text); | |
return implode(array_map('chr2code',$a)); | |
} | |
function chr2code($chr){ | |
$chr = str_pad(decbin(ord($chr)),8,"0",STR_PAD_LEFT); | |
$answer = ""; | |
for($i = 0; $i < strlen($chr) ; $i += 1) $answer .= str_repeat($chr[$i],3); | |
return $answer; | |
} | |
function decode($bits){ | |
$single_bit = ""; | |
for($i = 2; $i < strlen($bits); $i += 3){ | |
$x = [$bits[$i-2],$bits[$i-1],$bits[$i]]; | |
$z = array_count_values($x); | |
if(2 <= $z['1']){ $single_bit .= '1'; } | |
else{ $single_bit .= "0";} | |
} | |
$arr = []; | |
for($i = 0; $i < strlen($single_bit); $i += 1){ | |
if(0 == $i%8) array_push($arr,""); | |
$arr[count($arr) - 1] .= $single_bit[$i]; | |
} | |
$arr = array_map(fn($x) => chr(bindec($x)), $arr); | |
return implode($arr); | |
} |
Started at 23:56 02.11.2020 Monday Nov.
Finished at 23:35 03.11.2020 Tuesday Nov. (23hrs 39minutes)