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

题目描述

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;
    }
}

你可能感兴趣的:(字符串,LeetCode,牛客,Java,在线编程)