zoukankan      html  css  js  c++  java
  • LeetCode

    链接

    13. Roman to Integer

    题意

    根据罗马数字表示法给出阿拉伯数字表示法。

    思路

    按每一位的值相加即可,但若左边符号比右边符号小,是需要用较大值减较小值的。具体组数规则百度。

    代码

    Java:

    public class Solution {
        public int romanToInt(String s) {
            char[] k = {'I', 'V', 'X', 'L', 'C', 'D', 'M'};
            int[] v = {1, 5, 10, 50, 100, 500, 1000};
            Map<Character, Integer> map = new HashMap();
            for (int i = 0; i < k.length; i++) {
                map.put(k[i], v[i]);
            }
            int res = 0;
            for (int i = 0; i < s.length(); i++) {
                if (i + 1 < s.length() && map.get(s.charAt(i)) < map.get(s.charAt(i + 1))) {
                    res += map.get(s.charAt(i + 1)) - map.get(s.charAt(i));
                    i++;
                } else {
                    res += map.get(s.charAt(i));
                }
            }
            return res;
        }
    }
    
    // 较快的方法
    public class Solution {
        public int romanToInt(String s) {
            int graph[] = new int[400];
            graph['I'] = 1;
            graph['V']=5;
            graph['X']=10;
            graph['L']=50;
            graph['C']=100;
            graph['D']=500;
            graph['M']=1000;
            char[] num = s.toCharArray();
            // 遍历这个数,用sum来总计和
            int sum = graph[num[0]];
            for(int i=0; i<num.length-1; i++){
                // 如果,i比i+1大的话,直接相加
                if(graph[num[i]] >= graph[num[i+1]]){
                    sum += graph[num[i+1]];
                }
                // 如果i比i+1小的话,则将总和sum减去i这个地方数的两倍,同时加上i+1
                // 就相当于后边的数比左边的数大,则用右边的数减左边的数
                else{
                    sum = sum + graph[num[i+1]] - 2*graph[num[i]];
                }
            }
            return sum;
        }
            
    }
    
  • 相关阅读:
    redis基础配置
    brew安装mysql
    iptables 执行清除命令 iptables -F 要非常小心
    nginx反向代理部署nodejs配置
    Starting MySQL... ERROR! The server quit without updating PID file 问题解决
    iframe自适应高度问题
    js正则常用的一些东西
    node.js批量重命名文件
    [转]MySQL5字符集支持及编码研究
    PHP $_SERVER的使用
  • 原文地址:https://www.cnblogs.com/zyoung/p/6860462.html
Copyright © 2011-2022 走看看