题目描述:
Given a roman numeral, convert it to an integer.
Input is guaranteed to be within the range from 1 to 3999.
思路解析:
- 字符串遍历从最高位开始。
- 遇到 'I'、'X' 、'C'的字符时,需要判断是加还是减,区分依据是res是否已经大于5,大于50,大于500
- 其他的字符直接加上对应的数值就可以了
代码:
public class Solution {
public int romanToInt(String s) {
int res =0;
for(int i= s.length()-1;i>=0;i--){
char c= s.charAt(i);
if(c=='I'){
if(res>=5)
res-=1;
else
res+=1;
}else if(c=='V'){
res+=5;
}else if(c=='X'){
if(res>=50)
res-=10;
else
res+=10;
}else if(c=='L'){
res+=50;
}else if(c=='C'){
if(res>=500)
res-=100;
else
res+=100;
}else if(c=='D')
res+=500;
else if(c=='M'){
res+=1000;
}
}
return res;
}
}