romanToInt 【罗马数转数字】

第一印象,好乱,这玩意咋解决。

忍不住看了一眼题解,哈哈哈。
简单来说就是,前面大于等于后面的就加,否则就减掉。

public int romanToInt(String s) {
        Map<Character,Integer> map = new HashMap<>();
        map.put('I',1);
        map.put('V',5);
        map.put('X',10);
        map.put('L',50);
        map.put('C',100);
        map.put('D',500);
        map.put('M',1000);
        if(s.length() == 1){
            return map.get(s.charAt(0));
        }
        int i=0,j=1;
        int sum = 0;
        while(j<s.length()){
            if(map.get(s.charAt(i)) >= map.get(s.charAt(j))){
                sum += map.get(s.charAt(i));
            }else{
                sum -= map.get(s.charAt(i));
            }
            i++;j++;
        }
        sum += map.get(s.charAt(s.length()-1));
        return sum;

    }
  • 8
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值