leetcode 8 Roman to Integer C++实现
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++实现相关推荐
- LeetCode 13. Roman to Integer
问题链接 LeetCode 13. Roman to Integer 题目解析 将罗马数字转换成普通数字. 解题思路 先简单了解一下什么是罗马数字. 基本字符:I,V,X,L,C,D,M 相应的阿拉伯 ...
- [LeetCode][JavaScript]Roman to Integer
Roman to Integer Given a roman numeral, convert it to an integer. Input is guaranteed to be within t ...
- 【leetcode】Roman to Integer
题目描述: Given a roman numeral, convert it to an integer. Input is guaranteed to be within the range fr ...
- LeetCode: 13. Roman to Integer
051106 题目 Roman numerals are represented by seven different symbols: I, V, X, L, C, D and M. Symbol ...
- # LeetCode集锦(四) - 第13题 Roman To Integer
LeetCode集锦(四) - 第13题 Roman To Integer 问题 Roman numerals are represented by seven different symbols: ...
- Roman to Integer - LeetCode
目录 题目链接 注意点 解法 小结 题目链接 Roman to Integer - LeetCode 注意点 大的数字在小的数字左边是正常情况,要考虑的是小的数字在大的数字右边的那8种情况 解法 解法 ...
- LeetCode算法入门- Roman to Integer Integer to Roman -day8
LeetCode算法入门- Roman to Integer -day8 Roman to Integer: 题目描述: Roman numerals are represented by seven ...
- leetcode 12 ,13 Integer to Roman amp;amp;Roman to Integer 罗马与阿拉伯数组转换
12 Integer to Roman 13 Roman to Integer 有可能不注意的结果: class Solution {public:/*1.相同的数字连写,所表示的数等于这些数字相加得 ...
- 罗马数字 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 ...
最新文章
- 小谈多生成树协议--MSTP
- matlab里path,Matlab设置永久path
- EF6学习笔记十:原始查询,在EF中使用SQL语句
- 大快DKM大数据基础管理平台的监控功能剖析
- Unity Koreographer 之 音乐制作插件介绍学习,一般使用步骤介绍(包括:一般音乐游戏制作流程简绍) 一
- RTI_DDS自定义插件开发 9 API NDDS_Transport_Unshare_RecvResource_Fcn_rrEA
- Java学习-Thread
- ubuntu20.04中安装划词翻译_中英文文档翻译
- matlab chan算法定位,求Chan算法解析
- matlab如何打开flt文件,科学网—grb文件的读取 (更新) - 张凌的博文
- OPENGL OSG setNearFarRatio可以动态调节远近剪裁面
- 人生最好是随意,人生不可太随意!
- 食堂自助点餐系统NABCD
- 批量将多张图片的宽度和高度同时缩小一半,也可以按固定比例缩小
- 推荐一个动画框架Lottie
- 转:『IT视界』 [职场人生]从软件工程师到IT猎头:说说跳槽那点事
- 常用颜色及其RGB值
- java基础篇 第1章 计算机、程序和java概述 学习笔记 - 副本
- XnViewMP图片浏览器
- Java初始化省市区三级数据
热门文章
- Box Shadow阴影和圆角
- Oracle(一)--自定义用户,授予权限,踩过的坑
- Unable to start activity ComponentInfo错误
- PFP NFT:认识 20 个最佳 Web3 艺术项目
- 学习一下改变人生的32句励志名言
- 计算机素质教育论文800,素质教育议论文800字_素质教育与美育的创新追求
- 百度API根据ip获取对应地区
- OpenHarmony编译构建系统详解,从零搭建windows下开发环境,巨方便!
- maven build 配置
- Windows Server2012 R2 安装.NET Framework 3.5