力扣:罗马转整数

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;
}
相关推荐
半桔22 分钟前
【烧脑算法】单序列双指针:从暴力枚举到高效优化的思维跃迁
c语言·数据结构·c++·算法·面试·visual studio
虾球xz23 分钟前
游戏引擎学习第305天:在平台层中使用内存 Arena 的方法与思路
c++·学习·游戏引擎
芯眼26 分钟前
STM32库函数简介(重点)
数据库·c++·stm32·单片机·嵌入式硬件
·前路漫漫亦灿灿32 分钟前
C++-继承
开发语言·c++·面试
编程绿豆侠35 分钟前
力扣HOT100之二叉树: 236. 二叉树的最近公共祖先
数据结构·算法·leetcode
敲代码的瓦龙44 分钟前
C++?模板(进阶)!!!
开发语言·c++
_WndProc1 小时前
【C++/控制台】简易五子棋游戏
开发语言·c++·游戏
摆烂仙君2 小时前
腾讯2025年校招笔试真题手撕(三)
算法
兔兔爱学习兔兔爱学习8 小时前
创建Workforce
人工智能·算法
2301_794461579 小时前
力扣-有效三角形的个数
数据结构·算法·leetcode