2020-02-04
1.题目描述
根据一定的规则,将 罗马数字转整数
2.题解
直接进行判断即可,注意不要遗漏即可
3.代码
#include <iostream>
using namespace std;
class Solution {
public:
int romanToInt(string s) {
int sum=0,l=s.length(),i=0;
while (i<l) {
switch(s[i]) {
case 'I': {
if (i+1<l) {
if (s[i+1]=='V') {
sum+=4;
i++;
} else if (s[i+1]=='X') {
sum+=9;
i++;
} else {
sum+=1;
}
}else sum+=1;
break;
}
case 'V': {
sum+=5;
break;
}
case 'X': {
if (i+1<l) {
if (s[i+1]=='L') {
sum+=40;
i++;
} else if (s[i+1]=='C') {
sum+=90;
i++;
} else {
sum+=10;
}
}else sum+=10;
break;
}
case 'L': {
sum+=50;
break;
}
case 'C': {
if (i+1<l) {
if (s[i+1]=='D') {
sum+=400;
i++;
} else if (s[i+1]=='M') {
sum+=900;
i++;
} else {
sum+=100;
}
}else sum+=100;
break;
}
case 'D': {
sum+=500;
break;
}
case 'M': {
sum+=1000;
break;
}
}
i++;
}
return sum;
}
};
int main() {
Solution s;
cout<<s.romanToInt("III")<<endl;
return 0;
}
来源:CSDN
作者:打扰一下疯子
链接:https://blog.csdn.net/qq_34600424/article/details/104166595