您现在的位置是:首页 > 后台技术 > 数据结构与算法数据结构与算法

罗马数字转整数(图文)

第十三双眼睛2023-11-21【数据结构与算法】人已围观

简介罗马数字转整数
罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。
字符 数值
I 1
V 5
X 10
L 50
C 100
D 500
M 1000
例如, 罗马数字 2 写做 II ,即为两个并列的 1 。12 写做 XII ,即为 X + II 。 27 写做 XXVII, 即

其实本题很简单,就是依次遍历,遍历的时候,看看它的下一位是比本位大还是小,如果是大,则表示本位要减去,否则就是加上。因此代码如下:
public int method1(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);

    int sum = 0;
    char[] chars = s.toCharArray();
    for (int i = 0; i<chars.length - 1; i++) {
        Integer current = map.get(chars[i]);
        Integer next = map.get(chars[i + 1]);
        if (current >= next) {
            sum = sum + current;
        } else {
            sum = sum - current;
        }
    }
    sum = sum + map.get(chars[chars.length - 1]);
    return sum;
}

Tags:

很赞哦! ()

上一篇:回文数(图文)

下一篇:最长公共前缀

文章评论

    共有条评论来说两句吧...

    用户名:

    验证码:

本站推荐

站点信息

  • 网站名称:JavaStudy
  • 建站时间:2019-1-14
  • 网站程序:帝国CMS7.5
  • 文章统计242篇文章
  • 标签管理标签云
  • 统计数据百度统计
  • 微信公众号:扫描二维码,关注我们