class Solution {
public:
int romanToInt(string s) {
map<char,int> m;
m['I'] = 1;
m['V'] = 5;
m['X'] = 10;
m['L'] = 50;
m['C'] = 100;
m['D'] = 500;
m['M'] = 1000;
int k = s.length() - 1;
int sum = m[s[k]];
while(k > 0){
if(m[s[k]] <= m[s[k - 1]])
sum += m[s[k - 1]];//从右往左计算,如果左边的大于右边则加上左边的数,否则减去左边的数。
else
sum -= m[s[k - 1]];
k --;
}
return sum;
}
};[LeetCode] Roman to Integer
最新推荐文章于 2019-03-02 17:08:52 发布
本文介绍了一种将罗马数字转换为整数的方法。通过使用C++实现了一个名为Solution的类,该类中定义了一个名为romanToInt的成员函数。此函数接受一个包含罗马数字的字符串作为输入,并返回对应的整数值。实现过程中利用了字符映射到整数的映射表,从右至左遍历字符串并根据相邻字符值的关系进行加减运算。
623

被折叠的 条评论
为什么被折叠?



