LeetCode 13. 罗马数字转整数
原题链接
简单
作者:
LangB
,
2020-10-28 12:38:14
,
所有人可见
,
阅读 299
贪心法
class Solution {
public int romanToInt(String s) {
int res = 0;
int preNum = getValue(s.charAt(0));
for (int i = 1; i < s.length(); i++) {
int num = getValue(s.charAt(i));
// 如果前一个比后一个小,则要减去前一个的值
if (preNum < num) {
res -= preNum;
} else {
res += preNum;
}
preNum = num;
}
res += preNum;
return res;
}
private int getValue(char c) {
switch (c) {
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;
}
}
}