[原题链接-E] (https://leetcode.com/problems/roman--to-integer/)
Example
罗马转数字问题
时间复杂度: O(N)- 空间复杂度: O(1)
这个题关键点在于穷举
print_r(test(VI));
function test($num) {
$lookup = [
'I': 1,
'V': 5,
'X': 10,
'L': 50,
'C': 100,
'D': 500,
'M': 1000
];
$roman = '';
for ($i = 0; $i < mb_strlen($num); $i++) {
if ($i>0 && $lookup[$i] > $lookup[$i-1]) {
$roman += $lookup[$i] - 2 * $lookup[$i - 1];
} else {
$roman += $lookup[$i];
}
}
return $roman;
}
网友评论