题目:来源于力扣
上代码:
class Solution {
public:
//map还能放在外面吗?
//我是第一次见
//放在int函数里面也是可以
map<char,int> m{
//凭印象写
//注意:要用逗号隔开
{'I',1},
{'V',5},
{'X',10},
{'L',50},
{'C',100},
{'D',500},
{'M',1000}
};
int romanToInt(string s) {
//思路是用map对应每个罗马数字和对应的值
//然后遍历字符串
//罗马数字小的在前面做减法,否则做加法
int sum=0;
int n=s.length();
for(int i=0;i<n;++i){
// i<n-1目的是防止后面s[i+1]溢出
// 键对应值
int value=m[s[i]];
if(i<n-1 && value < m[s[i+1]]){
sum-=value;
}else{
sum+=value;
}
}
return sum;
}
};
开始我用if-else if弄不出来,整得挺复杂。看了题解之后,啊我破防了鸭!
不说了不说了,我是彩笔(∪.∪ )…zzz