题目:13. 罗马数字转整数
笨拙的遍历:
class Solution {
public:
int romanToInt(string s) {
int i=0;
long long int res=0;
while(s[i]!='\0'){
switch(s[i]){
case 'V': res=res+5;break;
case 'L': res=res+50;break;
case 'D': res=res+500;break;
case 'M': res=res+1000;break;
}
if(s[i]=='I'&&s[i+1]=='V'){
res=res+4;
i++;
}
else if(s[i]=='I'&&s[i+1]=='X'){
res=res+9;
i++;
}
else if(s[i]=='I')
res+=1;
else if(s[i]=='X'&&s[i+1]=='L'){
res=res+40;
i++;
}
else if(s[i]=='X'&&s[i+1]=='C'){
res=res+90;
i++;
}
else if(s[i]=='X')
res+=10;
else if(s[i]=='C'&&s[i+1]=='D'){
res=res+400;
i++;
}
else if(s[i]=='C'&&s[i+1]=='M'){
res=res+900;
i++;
}
else if(s[i]=='C')
res+=100;
i++;
}return res;
}
};