[LeetCode 题解]: Roman to Interger
前言
【LeetCode 题解】系列传送门: http://www.cnblogs.com/double-win/category/573499.html
1.题目描述
Given a roman numeral, convert it to an integer.
Input is guaranteed to be within the range from 1 to 3999.
2. 思路
找到规则即可
罗马数字的表示:
I~1 V~5 X~10 L~50 C~100 D~500 M~1000
规则:
基本数字Ⅰ、X 、C 中的任何一个,自身连用构成数目,或者放在大数的右边连用构成数目,都不能超过三个;放在大数的左边只能用一个。
不能把基本数字V 、L 、D 中的任何一个作为小数放在大数的左边采用相减的方法构成数目;放在大数的右边采用相加的方式构成数目,只能使用一个。
默认所有输入均为正确表示的罗马数字.
如果在输入中有不符合规则的数字,就需要加特殊的判断。
有几条须注意掌握:
- V 和X 左边的小数字只能用Ⅰ。
- L 和C 左边的小数字只能用X。
- D 和M 左边的小数字只能用C。 --摘自百度百科http://baike.baidu.com/view/42061.htm?fr=aladdin
在此就不赘述了
3. 解法
1 class Solution { 2 public: 3 int romanToInt(string s) { 4 int ans=0,i; 5 map<char,int> Ma; 6 { 7 Ma['I']=1; 8 Ma['V']=5; 9 Ma['X']=10; 10 Ma['L']=50; 11 Ma['C']=100; 12 Ma['D']=500; 13 Ma['M']=1000; 14 } 15 ans = Ma[s[0]]; 16 for(i=1;i<s.size();i++) 17 { 18 ans = ans + Ma[s[i]]; 19 if(Ma[s[i]] > Ma[s[i-1]] ) 20 ans -= 2* Ma[s[i-1]]; 21 } 22 return ans; 23 } 24 };
4. 相关题目
相对应的一道题:Roman to Interger : http://www.cnblogs.com/double-win/p/3760002.html
作者:Double_Win 出处: http://www.cnblogs.com/double-win/p/3761803.html 声明: 由于本人水平有限,文章在表述和代码方面如有不妥之处,欢迎批评指正~ |
转载于:https://www.cnblogs.com/double-win/p/3760002.html
[LeetCode 题解]: Roman to Interger相关推荐
- LeetCode 13. Roman to Integer
问题链接 LeetCode 13. Roman to Integer 题目解析 将罗马数字转换成普通数字. 解题思路 先简单了解一下什么是罗马数字. 基本字符:I,V,X,L,C,D,M 相应的阿拉伯 ...
- 900 多道 LeetCode 题解,这个 GitHub 项目值得 Star!
转自 | 码农有道 大家好,我是小 G. 周末风和日丽,适合刷 LeetCode 今天给你们推荐个 GitHub 项目,里面收集了 900 多道 LeetCode 题解,并包含中英文两个版本,适合大多 ...
- PHP版Leetcode题解开始随缘更新
2019独角兽企业重金招聘Python工程师标准>>> PHP版Leetcode题解 我叫skys215,是一名bug工程师. 我接触编程的时间比较早,但是因为我数学不好加上比较懒, ...
- [LeetCode 题解]: Binary Tree Preorder Traversal
前言 [LeetCode 题解]系列传送门: http://www.cnblogs.com/double-win/category/573499.html 1.题目描述 Given a binary ...
- LeetCode 题解汇总
为什么80%的码农都做不了架构师?>>> LeetCode 题解汇总 转载于:https://my.oschina.net/michao/blog/801863
- leetcode题解【持续更新】
leetcode题解不断更新,以及nowcoder题解.一起加油! 完整请移步我的Github 转载于:https://juejin.im/post/5c8a73d8f265da2de80fa774
- 32位有符号整数_008. 字符串转换整数 (atoi) | Leetcode题解
点击上方"蓝色字体",选择"设为星标" 每天复习一道面试题,轻松拿大厂Offer~ 题目描述: 请你来实现一个 atoi 函数,使其能将字符串转换成整数. 首先 ...
- leetcode题解132-分割回文串 II
问题描述 给你一个字符串 s,请你将 s 分割成一些子串,使每个子串都是回文. 返回符合要求的 最少分割次数 . 示例 1: 输入:s = "aab" 输出:1 解释:只需一次分割 ...
- leetcode题解131-分割回文串
问题描述 给你一个字符串 s,请你将 s 分割成一些子串,使每个子串都是 回文串 .返回 s 所有可能的分割方案. 回文串 是正着读和反着读都一样的字符串. 示例 1: 输入:s = "aa ...
最新文章
- [文档].JLINK挂了怎么办?自己修![转载].JLINK_V8固件烧录和固件升级指导.pdf
- DDR: efficient computational method to predict drug–target interactions using graph mining and machi
- 进程间通信——匿名管道
- Ubuntu16.04下创建工作空间并添加自己的功能包(python代码)
- SAP Commerce Cloud SmartEdit 学习笔记
- java整合flex
- ES6之主要知识点(二) 变量的解构赋值。默认值
- java 1.8 or higher_NetBeans安装提示neatbeans cannot find java 1.8 or higher
- mybatis源码学习(二):SQL的执行过程
- S3C2440PWM 定时器
- 2022年C语言教程入门和最新C语言自学教程C语言进阶教程大全
- 大数据笔记 | HDFS 常用操作命令
- 白盒测试方法与黑盒测试方法简析
- 数据库导出Excel乱码 解决
- 7月23日云栖精选夜读丨前端leader找我谈心:我是如何从刚毕业的前端菜鸟一步步成长为前端工程师的?...
- “Bluetooth keeps stopping“
- 双击启动PS软件界面不显示、PS无法打开,解决方法
- 【AI Studio平台基本操作】算力卡的使用获取及有关内容
- 部署Kubernetes集群+Dashboard可视化页面-1.18.6版本
- 多可文档管理系统的手机版