zoukankan      html  css  js  c++  java
  • LeetCode 13. Roman to Integer

    Given a roman numeral, convert it to an integer.

    Input is guaranteed to be within the range from 1 to 3999.


    【题目分析】

    题意很简答,即把一个罗马数字转换为一个整数。

    罗马数字的取值范围是1到3999。


    【思路】

    首先我们看一下什么是罗马数字。罗马数字其实并不陌生,但是种古老的计数方式我也是在看到这个题目以后才有所了解。

    罗马数字是最早的数字表示方式、比阿拉伯数字早 2000 多年、起源于古罗马

    在本题目中我们涉及不到加横线的情况,了解了上述的计数规则,那么我们就可以比较方便地编写程序啦。


    【java代码】

     1 public class Solution {
     2     public int romanToInt(String s) {
     3         int result = 0;
     4         Map<String, Integer> map = new HashMap<>();
     5         map.put("M", 1000);
     6         map.put("D", 500);
     7         map.put("C", 100);
     8         map.put("L", 50);
     9         map.put("X", 10);
    10         map.put("V", 5);
    11         map.put("I", 1);
    12         
    13         int last = 0;
    14         for(int i = 0; i < s.length(); i++){
    15             String ch = String.valueOf(s.charAt(i));
    16             int cur = map.get(ch);
    17             
    18             if(last < cur) result = result + cur - 2*last;
    19             else result += cur;
    20             last = cur;
    21         }
    22         return result;
    23     }
    24 }
  • 相关阅读:
    周志华 机器学习
    王亮 中国科学院自动化研究所
    殷明 合肥工业大学
    批处理命令行 for循环
    CalFrechetDist
    等高线简化线方法对比(多尺度评价方法)
    周成虎
    MFC 使用控制台打印程序信息
    C++ 获得本地磁盘盘符的容量信息
    VS2012+CUDA6.0配置方法
  • 原文地址:https://www.cnblogs.com/liujinhong/p/5977175.html
Copyright © 2011-2022 走看看