- https://www.codewars.com/kata/526d42b6526963598d0004db Caesar Cipher Helper.
Started at 21:21 02.10.2020 Friday Oct.
Finished at 21:51 02.10.2020 Friday Oct. (0hrs 30minutes)
<?php | |
# https://www.codewars.com/kata/526d42b6526963598d0004db Caesar Cipher Helper. | |
class CaesarCipher { | |
public $ch2n = ['A'=>1,'B'=>2,'C'=>3,'D'=>4,'E'=>5,'F'=>6,'G'=>7,'H'=>8,'I'=>9,'J'=>10,'K'=>11,'L'=>12,'M'=>13,'N'=>14,'O'=>15,'P'=>16,'Q'=>17,'R'=>18,'S'=>19,'T'=>20,'U'=>21,'V'=>22,'W'=>23,'X'=>24,'Y'=>25,'Z'=>26,]; | |
public $n2ch = [1=>'A',2=>'B',3=>'C',4=>'D',5=>'E',6=>'F',7=>'G',8=>'H',9=>'I',10=>'J',11=>'K',12=>'L',13=>'M',14=>'N',15=>'O',16=>'P',17=>'Q',18=>'R',19=>'S',20=>'T',21=>'U',22=>'V',23=>'W',24=>'X',25=>'Y',26=>'Z',]; | |
public $num = 0; | |
function __construct($n){ $this->num = $n;} | |
public function encode($str){ | |
$answer = ""; $size = strlen($str); | |
$str = strtoupper($str); | |
for($i = 0; $i < $size; $i +=1) | |
if(preg_match('/[A-Z]/',$str[$i])){ | |
$answer .= $this->n2ch[($this->ch2n[$str[$i]] + $this->num - 1) % 26 + 1]; | |
}else{ | |
$answer .= $str[$i]; | |
} | |
return $answer; | |
} | |
public function decode($str){ | |
$answer = ""; $size = strlen($str); | |
$str = strtoupper($str); | |
for($i = 0; $i < $size; $i +=1) | |
if(preg_match('/[A-Z]/',$str[$i])){ | |
$number = $this->ch2n[$str[$i]] - 1; | |
$number = (26 + $number - $this->num)%26 + 1; | |
$answer .= $this->n2ch[$number]; | |
}else{ | |
$answer .= $str[$i]; | |
} | |
return $answer; | |
} | |
} |
Started at 21:21 02.10.2020 Friday Oct.
Finished at 21:51 02.10.2020 Friday Oct. (0hrs 30minutes)