题目:罗马数字转整数
原题链接:罗马数字转整数
依次判断即可,就是有点啰嗦,也没有太多操作的余地,代码如下:
class Solution {
public:
int romanToInt(string s) {
int ans = 0;
int n = s.size();
for(int i = 0; i < n; i++){
if(s[i] == 'I' && s[i + 1] == 'V'){
ans += 4;
i ++;
}
else if(s[i] == 'I' && s[i + 1] == 'X'){
ans += 9;
i ++;
}
else if(s[i] == 'X' && s[i + 1] == 'L'){
ans += 40;
i ++;
}
else if(s[i] == 'X' && s[i + 1] == 'C'){
ans += 90;
i ++;
}
else if(s[i] == 'C' && s[i + 1] == 'D'){
ans += 400;
i ++;
}
else if(s[i] == 'C' && s[i + 1] == 'M'){
ans += 900;
i ++;
}
else if(s[i] == 'I') ans += 1;
else if(s[i] == 'V') ans += 5;
else if(s[i] == 'X') ans += 10;
else if(s[i] == 'L') ans += 50;
else if(s[i] == 'C') ans += 100;
else if(s[i] == 'D') ans += 500;
else if(s[i] == 'M') ans += 1000;
}
return ans;
}
};
执行结果:
题外话:
有些事,现在看来不过如此,但在当时,真的就是一个人一秒一秒熬过来的。
——德卡先生的信箱