leetcode 8 Roman to Integer C++实现

罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。

字符 数值
I 1
V 5
X 10
L 50
C 100
D 500
M 1000
例如, 罗马数字 2 写做 II ,即为两个并列的 1。12 写做 XII ,即为 X + II 。 27 写做 XXVII, 即为 XX + V + II 。

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

I 可以放在 V (5) 和 X (10) 的左边,来表示 4 和 9。
X 可以放在 L (50) 和 C (100) 的左边,来表示 40 和 90。
C 可以放在 D (500) 和 M (1000) 的左边,来表示 400 和 900。
给定一个罗马数字,将其转换成整数。输入确保在 1 到 3999 的范围内。

示例 1:

输入: “III”
输出: 3
示例 2:

输入: “IV”
输出: 4
示例 3:

输入: “IX”
输出: 9
示例 4:

输入: “LVIII”
输出: 58
解释: L = 50, V= 5, III = 3.
示例 5:

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

class Solution {
public:int romanToInt(string s) {//分析罗马数字的规律:左边的数字大于等于右边的数字,为加上这个数,反之就是减去这个数int num=0;int strlen=s.size();map<char,int> myMap;myMap['I']=1;myMap['V']=5;myMap['X']=10;myMap['L']=50;myMap['C']=100;myMap['D']=500;myMap['M']=1000;int i=0;while(i<strlen){while(i<strlen&&myMap[s[i]]<myMap[s[i+1]]){num-=myMap[s[i]];i++;}//这儿大于等于号是必须的,如果只有大于号会陷入死循环。while(i<strlen&&myMap[s[i]]>=myMap[s[i+1]]){num+=myMap[s[i]];i++;}}return num;}
};

leetcode 8 Roman to Integer C++实现相关推荐

  1. LeetCode 13. Roman to Integer

    问题链接 LeetCode 13. Roman to Integer 题目解析 将罗马数字转换成普通数字. 解题思路 先简单了解一下什么是罗马数字. 基本字符:I,V,X,L,C,D,M 相应的阿拉伯 ...

  2. [LeetCode][JavaScript]Roman to Integer

    Roman to Integer Given a roman numeral, convert it to an integer. Input is guaranteed to be within t ...

  3. 【leetcode】Roman to Integer

    题目描述: Given a roman numeral, convert it to an integer. Input is guaranteed to be within the range fr ...

  4. LeetCode: 13. Roman to Integer

    051106 题目 Roman numerals are represented by seven different symbols: I, V, X, L, C, D and M. Symbol ...

  5. # LeetCode集锦(四) - 第13题 Roman To Integer

    LeetCode集锦(四) - 第13题 Roman To Integer 问题 Roman numerals are represented by seven different symbols: ...

  6. Roman to Integer - LeetCode

    目录 题目链接 注意点 解法 小结 题目链接 Roman to Integer - LeetCode 注意点 大的数字在小的数字左边是正常情况,要考虑的是小的数字在大的数字右边的那8种情况 解法 解法 ...

  7. LeetCode算法入门- Roman to Integer Integer to Roman -day8

    LeetCode算法入门- Roman to Integer -day8 Roman to Integer: 题目描述: Roman numerals are represented by seven ...

  8. leetcode 12 ,13 Integer to Roman amp;amp;Roman to Integer 罗马与阿拉伯数组转换

    12 Integer to Roman 13 Roman to Integer 有可能不注意的结果: class Solution {public:/*1.相同的数字连写,所表示的数等于这些数字相加得 ...

  9. 罗马数字 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 ...

最新文章

  1. 小谈多生成树协议--MSTP
  2. matlab里path,Matlab设置永久path
  3. EF6学习笔记十:原始查询,在EF中使用SQL语句
  4. 大快DKM大数据基础管理平台的监控功能剖析
  5. Unity Koreographer 之 音乐制作插件介绍学习,一般使用步骤介绍(包括:一般音乐游戏制作流程简绍) 一
  6. RTI_DDS自定义插件开发 9 API NDDS_Transport_Unshare_RecvResource_Fcn_rrEA
  7. Java学习-Thread
  8. ubuntu20.04中安装划词翻译_中英文文档翻译
  9. matlab chan算法定位,求Chan算法解析
  10. matlab如何打开flt文件,科学网—grb文件的读取 (更新) - 张凌的博文
  11. OPENGL OSG setNearFarRatio可以动态调节远近剪裁面
  12. 人生最好是随意,人生不可太随意!
  13. 食堂自助点餐系统NABCD
  14. 批量将多张图片的宽度和高度同时缩小一半,也可以按固定比例缩小
  15. 推荐一个动画框架Lottie
  16. 转:『IT视界』 [职场人生]从软件工程师到IT猎头:说说跳槽那点事
  17. 常用颜色及其RGB值
  18. java基础篇 第1章 计算机、程序和java概述 学习笔记 - 副本
  19. XnViewMP图片浏览器
  20. Java初始化省市区三级数据

热门文章

  1. Box Shadow阴影和圆角
  2. Oracle(一)--自定义用户,授予权限,踩过的坑
  3. Unable to start activity ComponentInfo错误
  4. PFP NFT:认识 20 个最佳 Web3 艺术项目
  5. 学习一下改变人生的32句励志名言
  6. 计算机素质教育论文800,素质教育议论文800字_素质教育与美育的创新追求
  7. 百度API根据ip获取对应地区
  8. OpenHarmony编译构建系统详解,从零搭建windows下开发环境,巨方便!
  9. maven build 配置
  10. Windows Server2012 R2 安装.NET Framework 3.5