罗马数字转整数

罗马数字包含以下七种字符: IVXLCDM

字符          数值
I             1
V             5
X             10
L             50
C             100
D             500
M             1000

例如, 罗马数字 2 写做 II ,即为两个并列的 1 。12 写做 XII ,即为 X + II27 写做 XXVII, 即为 XX + V + II

通常情况下,罗马数字中小的数字在大的数字的右边。但也存在特例,例如 4 不写做 IIII,而是 IV。数字 1 在数字 5 的左边,所表示的数等于大数 5 减小数 1 得到的数值 4 。同样地,数字 9 表示为 IX。这个特殊的规则只适用于以下六种情况:

给定一个罗马数字,将其转换成整数。

示例 1:

输入: s = "III"
输出: 3

示例 2:

输入: s = "IV"
输出: 4

示例 3:

输入: s = "IX"
输出: 9

示例 4:

输入: s = "LVIII"
输出: 58
解释: L = 50, V= 5, III = 3.

示例 5:

输入: s = "MCMXCIV"
输出: 1994
解释: M = 1000, CM = 900, XC = 90, IV = 4.

提示:

我的代码:

class Solution {public:int romanToInt(string s) {// 使用哈希表来存储键值对// 只是需要注意的是 这里的哈希表需要用到unordered_map // 不能用到 map因为map会自动排序 导致这个顺序出问题unordered_map<char, int>mp = { { 'I',1 },{ 'V', 5 },{ 'X', 10 },{ 'L' , 50 },{ 'C' , 100 },{ 'D' , 500 },{ 'M' , 1000 } };int sum = 0;int fastNum = mp[s[0]];for (int i = 1; i < s.size(); ++ i){int num = mp[s[i]];if (fastNum < num) sum -= fastNum; // 这个就是特殊情况 需要减的else sum += fastNum;fastNum = num;            }sum += fastNum;return sum;}private:};

对应我的掘金文章:https://juejin.cn/post/7147342349998227493

罗马数字转整数(C++)相关推荐

  1. 【每日一算法】罗马数字转整数

    微信改版,加星标不迷路! 每日一算法-罗马数字转整数 作者:阿广 阅读目录 1 题目 2 解析 1 题目 罗马数字包含以下七种字符: I, V, X, L,C,D 和 M. 字符 数值I 1 V 5 ...

  2. LeetCode(13.罗马数字转整数) JAVA Hashmap

    LeetCode(13.罗马数字转整数) JAVA Hashmap 罗马数字包含以下七种字符: I, V, X, L,C,D 和 M. 字符 数值 I 1 V 5 X 10 L 50 C 100 D ...

  3. leetcode 两数之和 整数反转 回文数 罗马数字转整数

    1.两数之和 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标. 你可以假设每种输入只会对应一个答案.但是,你不能重复利用这个 ...

  4. LeetCode 13罗马数字转整数14最长公共前缀

    罗马数字转整数 上一题是整数转罗马数字,这题是罗马数字转整数.虽然是简单题,但我感觉其实有点烦. 上一次是数字转字符,这次是字符转数字,总的来说大体思想还是差不多的. 首先整个字符串可能是这样构造的: ...

  5. 罗马数字 java_【leetcode刷题】[简单]13.罗马数字转整数(roman to integer)-java

    罗马数字转整数 roman to integer 题目 罗马数字包含以下七种字符: I, V, X, L,C,D 和 M. 字符 数值 I 1 V 5 X 10 L 50 C 100 D 500 M ...

  6. LeetCode题 - 13 罗马数字转整数

    罗马数字转整数 罗马数字包含以下七种字符: I, V, X, L,C,D 和 M. 字符 数值 I 1 V 5 X 10 L 50 C 100 D 500 M 1000 例如, 罗马数字 2 写做 I ...

  7. 20190913:(leetcode习题)罗马数字转整数

    罗马数字转整数 题目 大致思路 代码实现 题目 大致思路 跟上题一样,不需要思路,直接把各种情况列出来即可. 代码实现 package com.immunize.leetcode.romanTOINT ...

  8. 力扣——罗马数字转整数

    罗马数字转整数 罗马数字包含以下七种字符: I, V, X, L,C,D 和 M. 字符 数值 I 1 V 5 X 10 L 50 C 100 D 500 M 1000 例如, 罗马数字 2 写做 I ...

  9. 每天Leetcode 刷题 初级算法篇-数学问题-罗马数字转整数

    题目要求: 力扣题解: 代码 /*** @program: mydemo* @description: 罗马数字转整数* @author: Mr.zeng* @create: 2021-02-24 0 ...

  10. leetcode 罗马数字与整数的转换算法

    介绍: 该算法是将罗马数字转换为整数,思路如下:比如IXX,使用临时变量temp保存上一个已经遍历的罗马数字,比如:遍历时是从后往前遍历的:1> 刚开始时,temp = 0; 遍历当前遍历到第一 ...

最新文章

  1. Spire.Doc系列教程:C# 根据 Word 的标题样式获取文字
  2. 给自己Mark一下要学习的东西
  3. 如何实时查看linux下的日志
  4. with as 用法_介词with用法
  5. PHP设置页面显示编码
  6. Non-zero CodeForces - 1300A
  7. python连接access 参数太少_paip. 解决php 以及 python 连接access无效的参数量。参数不足,期待是 1”的错误...
  8. python docx 表格打印不显示_python-docx 设置 word 文档中表格格式
  9. 申请成功Azure帐号开始学习Azure云计算
  10. 【Codeforces】868C. Qualification Rounds
  11. C盘中哪些文件可以删除?
  12. Live Love(思维)
  13. bootstrap 修改carousel 样式
  14. Elasticsearch 5.0 rollover api 学习
  15. 天津工业大学信息与计算机学院,图象与信息技术研究所
  16. ue4 通过指定路径加载资源_求助!加载pak资源到内存后,如何引用资源显示出来到地图中?...
  17. DTS、smba、ftp安装使用
  18. Android Studio 佛祖保佑 永无bug 注释模板设置详解(仅供娱乐)
  19. Inter SIU520 Log阅读
  20. 图扑智慧电力可视化大屏,赋能虚拟电厂精准减碳

热门文章

  1. Unity SRP初识之URP
  2. JDBC(Java数据库连接) 学习笔记 第四天
  3. 支付宝app支付提示 系统繁忙,请稍后重试
  4. 使用 HTML/CSS 实现 Educoder 顶部导航栏
  5. Python概率分布大全(含可视化)
  6. Android 拍摄(横\竖屏)视频的懒人之路
  7. 在word中在方框里打钩
  8. 微信公众号页面开发记录
  9. Python爬虫实例之淘宝商品比价定向爬取!爬虫还是很有意思的!
  10. NIT考试感想与复习unity基础