0
点赞
收藏
分享

微信扫一扫

LeetCode 13. 罗马数字转整数

hwwjian 2022-05-01 阅读 49
  1. 罗马数字转整数(代码+测试)
package LeetCode;

import java.util.HashMap;

class Solution {
    public static void main(String[] args) {
        Solution solution = new Solution();
        int  result=   solution.romanToInt("MCMXCIV" );
        System.out.println(result);

    }
    public int romanToInt(String s) {
        if(s.isEmpty()) return  0;
        HashMap<Character,Integer>contain=new HashMap<>();
        contain.put('I',1);
        contain.put('V',5);
        contain.put('X',10);
        contain.put('L',50);
        contain.put('C',100);
        contain.put('D',500);
        contain.put('M',1000);
        char[]c=s.toCharArray();      //将字符串转换成字符,运行速度会快些
        int res=contain.get(c[0]);    //  get(c[0])=1000     s = "MCMXCIV"
        for (int i = 1; i <c.length ; i++) {
            int curr=contain.get(c[i]);        //get(c[1])
            int pre=contain.get(c[i-1]);
            if (curr>pre){
                res+=curr-2*pre;
            }else{
                res+=curr;
            }

        }
        return  res;
    }
}
举报

相关推荐

0 条评论