class Solution {
public:
int romanToInt(string s) {
map<char,int> m=
{
{'I',1},
{'V',5},
{'X',10},
{'L',50},
{'C',100},
{'D',500},
{'M',1000},
};
int num=0;
//下面这种插入方式应该也是对的,但是在力扣的编译器里一直报错
// m.insert(make_pair('I',1));
// m.insert(make_pair('V',5));
// m.insert(make_pair('X',10));
// m.insert(make_pair('L',50));
//m.insert(make_pair('C',100));
//m.insert(make_pair('D',500));
//m.insert(make_pair('M',1000));
for(int i=0;i<s.length();i++)
{
if(i<(s.length()-1)&&m[s[i]]<m[s[i+1]])
{
num=num-m[s[i]];
}
else
{
num=num+m[s[i]];
}
}
return num;
}
};
leetcode刷题:13罗马数字转整数
最新推荐文章于 2024-10-31 16:16:13 发布
该代码定义了一个名为Solution的类,包含一个方法romanToInt,该方法将输入的罗马数字字符串转换为对应的整数值。通过创建一个映射表m存储罗马数字与数值的关系,然后遍历字符串处理每个字符,根据罗马数字的规则计算出总值。
摘要由CSDN通过智能技术生成