13. [哈希表]罗马数字转整数
13. 罗马数字转整数
单位罗马数字转整数可以用一个函数或者用一个哈希表实现。在核心实现思路中,逐位比较前一位数 \(preNum\) 与 当前位数 \(num\) 的大小,如果前者比后者大,则累加到 \(ans\) 上,反之,则累减到 \(ans\) 上。别忘了最后要加上 \(preNum\) 。
class Solution {
public int romanToInt(String s) {
int ans = 0, preNum = 0, num = 0;
preNum = getValue(s.charAt(0));
for(int i = 1; i < s.length(); i++){
num = getValue(s.charAt(i));
if (preNum < num){
ans -= preNum;
} else {
ans += preNum;
}
preNum = num;
}
ans += preNum;
return ans;
}
// 这部分用哈希表也可以
private int getValue(char ch) {
switch(ch) {
case 'I': return 1;
case 'V': return 5;
case 'X': return 10;
case 'L': return 50;
case 'C': return 100;
case 'D': return 500;
case 'M': return 1000;
default: return 0;
}
}
}

浙公网安备 33010602011771号