【LeetCode13】罗马数字转整数(简单模拟+哈希)

简介: 简单题,读懂题意。如果右边的数比当前的数大,则当前数需要加个负号,如IV是5-1=4;如果右边的数比当前的数字小,则都是加法(注意最后一个数也是用加法的)。三、代码

一、题目

image.pngimage.pngimage.png



二、思路

简单题,读懂题意。如果右边的数比当前的数大,则当前数需要加个负号,如IV是5-1=4;如果右边的数比当前的数字小,则都是加法(注意最后一个数也是用加法的)。

三、代码

class Solution {
private:
    unordered_map<char, int> mp = {
        {'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.size();
        for(int i = 0; i < s.size(); i++){
            int num = mp[s[i]];
            if(i < n - 1 && num < mp[s[i + 1]]){
                ans -= num;
            }else{
                ans += num;
            }
        }
        return ans;
    }
};
相关文章
|
29天前
|
算法 数据挖掘 开发者
LeetCode题目55:跳跃游戏【python5种算法贪心/回溯/动态规划/优化贪心/索引哈希映射 详解】
LeetCode题目55:跳跃游戏【python5种算法贪心/回溯/动态规划/优化贪心/索引哈希映射 详解】
|
10天前
|
算法
力扣经典150题第十八题:整数转罗马数字
力扣经典150题第十八题:整数转罗马数字
8 0
|
10天前
|
存储 算法 测试技术
力扣经典150题第十七题:罗马数字转整数
力扣经典150题第十七题:罗马数字转整数
7 0
|
28天前
|
存储 SQL 算法
LeetCode 题目 87:递归\动态规划\哈希实现 扰乱字符串
LeetCode 题目 87:递归\动态规划\哈希实现 扰乱字符串
|
29天前
|
SQL 算法 数据挖掘
深入探索力扣第12题:整数转罗马数字的算法之旅
深入探索力扣第12题:整数转罗马数字的算法之旅
|
29天前
|
SQL 算法 数据可视化
LeetCode第八题:字符串转换整数 (atoi)【8/1000 python】
LeetCode第八题:字符串转换整数 (atoi)【8/1000 python】
|
2月前
[leetcode~数位动态规划] 2719. 统计整数数目 hard
[leetcode~数位动态规划] 2719. 统计整数数目 hard
|
2月前
[leetcode] 705. 设计哈希集合
[leetcode] 705. 设计哈希集合
|
2月前
|
存储
【力扣】7. 整数反转
【力扣】7. 整数反转
|
2月前
leetcode代码记录(整数拆分
leetcode代码记录(整数拆分
22 0