Skip to content

Instantly share code, notes, and snippets.

@lbvf50mobile
Last active September 19, 2020 15:20
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save lbvf50mobile/32fd876ea8d2bd132ec870268bddd4fa to your computer and use it in GitHub Desktop.
Save lbvf50mobile/32fd876ea8d2bd132ec870268bddd4fa to your computer and use it in GitHub Desktop.
Just PHP FUN 106.
<?php
# https://www.codewars.com/kata/51b6249c4612257ac0000005 Roman Numerals Decoder.
function solution ($roman) {
$number = 0;
$level = 0;
$map = [
"I" => [1,0],
"V" => [5,1],
"X" => [10,2],
"L" => [50,3],
"C" => [100,4],
"D" => [500,5],
"M" => [1000,6],
];
$len = strlen($roman);
for($i = $len - 1; $i >= 0; $i -= 1){
list($value,$char_level) = $map[$roman[$i]];
if($char_level >= $level){
$number += $value;
$level = $char_level;
}else{
$number -= $value;
}
}
return $number;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment