LeetCode—roman-to-integer(罗马数字转换成整数)—java

xiaoxiao2021-02-28  5

题目描述:

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; } }
转载请注明原文地址: https://www.6miu.com/read-2350129.html

最新回复(0)