当前位置: 首页 > article >正文

【力扣】罗马数字转整数,哈希集合+模拟

罗马数字转整数原题地址

方法一:模拟

罗马数字是字符串,其中每个字符都对应一个整数值,为了方便查找,可以预先把这种对应关系存储到哈希表中。

遍历字符串,对于每个字符,

  1. 如果该字符不是最右边的字符,且它右边的字符对应的整数值更大一些,就要减去该字符对应的整数值。
  2. 否则就加上该字符对应的整数值。
// 方法一:模拟
class Solution {
    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.size();
        for (int i = 0; i < n; ++i)
        {
            int val = symbolValues[s[i]];
            // 若右边的数更大,就-val,否则+val
            if (i + 1 < n && val < symbolValues[s[i + 1]])
            {
                ans -= val;
            }
            else
            {
                ans += val;
            }
        }

        return ans;
    }
};


http://www.kler.cn/a/229439.html

相关文章:

  • C#中通道(Channels)的应用之(生产者-消费者模式)
  • Linux 机器学习
  • HTML5 加载动画(Loading Animation)
  • scrapy爬取图片
  • 【声音场景分类--论文阅读】
  • Java Stream流操作List全攻略:Filter、Sort、GroupBy、Average、Sum实践
  • Git版本管理工具(基础):这一篇基本能满足Git基本的使用需求了!
  • WiFi 6 和WiFi 6e 的核心要点
  • 谷歌免费开放模糊测试框架OSS-Fuzz(物联网、车联网、供应链安全、C/C++)
  • clickhouse计算前后两点间经纬度距离
  • C++结构化绑定
  • GEDepth:Ground Embedding for Monocular Depth Estimation
  • 函数的连续与间断【高数笔记】
  • CAEX 学习记录
  • MATLAB语音去噪系统
  • docker自定义镜像并使用
  • Node.js+Express+Mysql服务添加环境变量
  • git 的基本概念
  • KY114 Coincidence
  • Unity接入GVoice腾讯实时语音
  • 【安卓跨程序共享数据,探究ContentProvider】
  • 动态规划01 三步问题[C++]
  • HarmonyOS鸿蒙ArkTS证件照生成模板(适合二次开发,全套源码版)
  • 正点原子-STM32通用定时器学习笔记(1)
  • 防范恶意勒索攻击!亚信安全发布《勒索家族和勒索事件监控报告》
  • 深度学习(12)--Mnist分类任务