class Solution {
public:
//罗马数字规律问题求解,寻找加减规律
//当前字符与前一字符代表的value,关系为解题关键
//罗马字符表如上图所示
int romanToInt(string s) {
int length = s.size();
map<char, int> roman;
int res;
roman['I'] = 1;
roman['V'] = 5;
roman['X'] = 10;
roman['L'] = 50;
roman['C'] = 100;
roman['D'] = 500;
roman['M'] = 1000;
res = roman[s[length -1]];
for(int j = length - 2 ; j>=0 ; j--){
if(roman[s[j]] >= roman[s[j+1]]){
res = res + roman[s[j]];
}
else{
res = res - roman[s[j]];
}
}
return res;
}
};
leetcode RomanToInt
最新推荐文章于 2021-11-19 13:40:08 发布