栏目分类:
子分类:
返回
终身学习网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
终身学习网 > IT > 软件开发 > 后端开发 > Java

【leetcode

Java 更新时间:发布时间: 百科书网 趣学号
13.罗马数字转整数

【思路】

通常情况下罗马数字是 “大——>小” 排列的,是加法操作。特例中罗马数字是“小大” 排列的,做减法。所以只需要将相邻两位罗马数字进行比较,如果是 “大小” 排列,则做加法,相反做减法。

【代码】

class Solution {
    public int romanToInt(String s) {
        // 创建HashTable
        HashMap 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);
        
        int len = s.length();
        int sum = 0;
        for(int i = 0; i < len; i ++) {
            int num = map.get(s.charAt(i));
            // 比较字符串s的第i与i+1位数字
            // i < len-1 为了防止抛OutOfBound异常
            if(i < len-1 && num < map.get(s.charAt(i+1))) {
                sum = sum - num;
            } else {
                sum = sum + num;
            }
        }
        return sum;
    }
}

【说明】

// 定义map集合对象,引用类型为
HashMap map = new HashMap();

// 向集合中添加对象
map.put();
// 获取指定键映射的值
map.get();

// 返回指定索引处的字符
s.charAt(index);

转载请注明:文章转载自 www.051e.com
本文地址:http://www.051e.com/it/957262.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 ©2023-2025 051e.com

ICP备案号:京ICP备12030808号