• 13.罗马数字转整数


    题目来源:

    力扣icon-default.png?t=M85Bhttps://leetcode.cn/problems/roman-to-integer/题目简介:

    就是把罗马数字转化成阿拉伯数字。

    思路1:

    确定好每个罗马字母所对应的值,遍历整个字符串,后一个字符小于前一个字符,两字符就是相加,后一个字符大于前一个字符,两字符就是相减,当没有下一位时,做加法即可。

    代码实现:

    import java.util.*;

    class Solution {
        public int romanToInt(String s) {
            int sum = 0;
            int preNum = getValue(s.charAt(0));
            for(int i = 1;i < s.length(); i ++) {
                int num = getValue(s.charAt(i));
                if(preNum < num) {
                    sum -= preNum;
                } else {
                    sum += preNum;
                }
                preNum = num;
            }
            sum += preNum;
            return sum;
        }
        
        private int getValue(char ch) {
            switch(ch) {
                case 'I': return 1;
                case 'V': return 5;
                case 'X': return 10;
                case 'L': return 50;
                case 'C': return 100;
                case 'D': return 500;
                case 'M': return 1000;
                default: return 0;
            }
        }
    }

    思路二:哈希表

    简单的把switch函数换成键值指对

    class Solution {
    private:
        unordered_map symbolValues = {
            {'I', 1},
            {'V', 5},
            {'X', 10},
            {'L', 50},
            {'C', 100},
            {'D', 500},
            {'M', 1000},
        };

    public:
        int romanToInt(string s) {
            int ans = 0;
            int n = s.length();
            for (int i = 0; i < n; ++i) {
                int value = symbolValues[s[i]];
                if (i < n - 1 && value < symbolValues[s[i + 1]]) {
                    ans -= value;
                } else {
                    ans += value;
                }
            }
            return ans;
        }
    };
     

  • 相关阅读:
    PHP代码审计18—PHP代码审计小结
    springboot 使用 GRPC
    PSU 19.19安装
    【Spring】三周玩转Spring全家桶
    Python Fire:自动生成命令行接口
    AI绘画提示词创作指南:DALL·E 2、Midjourney和 Stable Diffusion最全大比拼
    项目实战:通过axios加载水果库存系统的首页数据
    消息队列 - RabbitMQ
    Nginx+Tomcat负载均衡、动静分离集群
    公司电脑文件加密防泄密软件系统——「天锐绿盾」
  • 原文地址:https://blog.csdn.net/stay_awake__/article/details/126891222