力扣:罗马转整数

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;
}
相关推荐
code bean几秒前
【C++ 】C++ 与 C#:using 关键字、命名空间及作用域解析符对比
开发语言·c++·c#
我发在否几秒前
Rust > 牛客OJ在线编程常见输入输出练习场
算法·rust
CAE虚拟与现实几秒前
C# 调用 DLL为什么不像 C/C++调用 DLL 时需要lib库
开发语言·c++·c#·动态链接库·dll库·lib库
忆湫淮1 分钟前
ENVI 5.6 利用现场标准校准板计算地表反射率具体步骤
大数据·人工智能·算法
Larry_Yanan2 分钟前
Qt线程使用(一)直接继承QThread类
开发语言·c++·qt·ui
Ayanami_Reii4 分钟前
基础数据结构应用-一个简单的整数问题
数据结构·算法·树状数组·fenwick tree
Yu_Lijing11 分钟前
【个人项目】C++基于websocket的多用户网页五子棋(上)
开发语言·c++·websocket
Ayanami_Reii17 分钟前
进阶数据结构应用-一个简单的整数问题2(Fenwick-Tree 解法)
数据结构·算法·前缀和·差分·树状数组·fenwick tree
老黄编程18 分钟前
点云生成深度图的原理及算法步骤和参数详细说明
数学·算法·点云·深度图
老黄编程22 分钟前
点云SIFT3D特征点云原理、算法描述及参数详细说明
算法·3d·sift3d