Leetcode-13. 罗马数字转整数
题目:
代码:
#include <iostream>
using namespace std;
int romanToInt(string s) {
int num=0;
for(int i=0;i<s.size();i++){
if((s[i]=='I')&&(s[i+1]=='V')){ //4
num+=4;
i++;
}else if((s[i]=='I')&&(s[i+1]=='X')){ //9
num+=9;
i++;
}else if(s[i]=='I'){ //1
num+=1;
}else if(s[i]=='V'){ //5
num+=5;
}else if((s[i]=='X')&&(s[i+1]=='L')){ //40
num+=40;
i++;
}else if((s[i]=='X')&&(s[i+1]=='C')){ //90
num+=90;
i++;
}else if(s[i]=='X'){ //10
num+=10;
}else if(s[i]=='L'){ //50
num+=50;
}else if((s[i]=='C')&&(s[i+1]=='D')){ //400
num+=400;
i++;
}else if((s[i]=='C')&&(s[i+1]=='M')){ //900
num+=900;
i++;
}else if(s[i]=='C'){ //100
num+=100;
}else if(s[i]=='D'){ //500
num+=500;
}else if(s[i]=='M'){ //1000
num+=1000;
}
}
return num;
}
int main(){
string s;
int num;
cin>>s;
num=romanToInt(s);
cout<<num;
return 0;
}