Leetcode第十三题——罗马数字转整数

思路:小的在左就去减,大的就加。

public int romanToInt(String s){
      int preNum= getValue(s.charAt(0));
      int num=0;
      int sum=0;
      for(int i=1;i<s.length();i++){
          num=getValue(s.charAt(i));
          if(preNum<num){
              sum-=preNum;//左边减去
          }else{
              sum+=preNum;
          }
          preNum=num;


      }
      sum+=preNum;//相加最后一位
      return sum;








    }
    public static int getValue(char ch){
        if(ch=='M'){
            return 1000;
        }else if(ch=='D'){
            return 500;
        }else if(ch=='C'){
            return 100;
        }else if(ch=='L'){
            return 50;
        } else if (ch == 'X') {
            return 10;
        }else if(ch=='V'){
            return 5;
        }else if(ch=='I'){
            return 1;
        }else{
            return 0;
        }
    }

 

posted @ 2020-08-30 13:59  huxiaojie  阅读(107)  评论(0编辑  收藏  举报