题目描述:
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; } }