力扣:罗马转整数

cpp 复制代码
#include <iostream>
#include <unordered_map>

using namespace std;

class Solution {
private:
    unordered_map<char, int> 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]]) {
              if ( value < symbolValues[s[i + 1]]) {
                ans -= value;
            }
            else {
                ans += value;
            }
        }
        return ans;
    }
};

int main() {
    Solution sol;
    string input = "MCMXCIV";
    int output = sol.romanToInt(input);
    cout << "输入: s = " << input << endl;
    cout << "输出: " << output << endl;

    return 0;
}
相关推荐
呆呆的小鳄鱼13 分钟前
如何刷新缓冲区(c++、c、linux)
linux·c语言·c++
顾小玙24 分钟前
前缀和:leetcode974--和可被K整除的子数组
数据结构·算法
zh_xuan26 分钟前
c++ std::function
开发语言·c++
猿来不是梦42 分钟前
RT_Thread内核源码分析(五)——内存管理@小堆内存管理算法
stm32·单片机·算法·系统架构·rt_thread操作系统
2401_881244401 小时前
vector的用法
算法
W说编程1 小时前
算法导论第三章:数据结构艺术与高效实现
c语言·数据结构·算法
hn小菜鸡1 小时前
LeetCode 2529.正整数和负整数的最大计数
java·算法·leetcode
灏瀚星空2 小时前
高频交易技术:订单簿分析与低延迟架构——从Level 2数据挖掘到FPGA硬件加速的全链路解决方案
人工智能·python·算法·信息可视化·fpga开发·架构·数据挖掘
hn小菜鸡2 小时前
LeetCode 2917.找出数组中的K-or值
数据结构·算法·leetcode