LeetCode第13题 罗马数字转整数
/* 罗马数字包含以下七种字符: 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 的范围内。*/
/* 思路: 将字符对应的值封装成键值对放入map中. 如果 i字符的键比 i-1的键要大 ,说明产生了 IV这样 : I代表1,V代表5 ,值代表 4 的 串. nums += value - 2 *valuePre 否则就说明字符是按照从大到小的顺序排列 num += value */
1 class Solution13 { 2 3 public int romanToInt(String s) { 4 Map<Character, Integer> map = new HashMap<>(); 5 map.put('M', 1000); 6 map.put('D', 500); 7 map.put('C', 100); 8 map.put('L', 50); 9 map.put('X', 10); 10 map.put('V', 5); 11 map.put('I', 1); 12 13 int nums = 0; 14 nums += map.get(s.charAt(0)); 15 16 for (int i = 1; i < s.length(); i++) { 17 int value = map.get(s.charAt(i)); 18 int valuePre = map.get(s.charAt(i - 1)); 19 20 nums += value; 21 if (valuePre < value) { 22 nums -= valuePre << 1; 23 } 24 } 25 26 return nums; 27 } 28 }
转载于:https://www.cnblogs.com/rainbow-/p/10257121.html
LeetCode第13题 罗马数字转整数相关推荐
- LeetCode:第13题 罗马数字转整数 python语言实现 2020.2.3
罗马数字包含以下七种字符: I, V, X, L,C,D 和 M. 字符 数值 I 1 V 5 X 10 L ...
- LeetCode题组:第13题-罗马数字转整数
1.题目:回文数 罗马数字包含以下七种字符: I, V, X, L,C,D 和 M. 字符 数值 I 1 V 5 X 10 L 50 C 100 D 500 M 1000 例如, 罗马数字 2 写做I ...
- LeetCode(13)——罗马数字转整数(JavaScript)
罗马数字包含以下七种字符:I,V, X, L,C,D 和M. 字符-------数值 I--------------1 V-------------5 X------------10 L------- ...
- 力扣13题---罗马数字转整数
罗马数字包含以下七种字符: I, V, X, L,C,D 和 M. 字符 数值 I 1 V 5 X 10 L 50 C 100 D 500 M 1000 例如, 罗马数字 2 写做 II ,即为两个并 ...
- LeetCode高频题13:罗马数字转整数
LeetCode高频题13:罗马数字转整数 提示:本题是系列LeetCode的150道高频题,你未来遇到的互联网大厂的笔试和面试考题,基本都是从这上面改编而来的题目 互联网大厂们在公司养了一大批ACM ...
- LeetCode简单-Python-(13)罗马数字转整数
罗马数字转整数 罗马数字包含以下七种字符: I, V, X, L,C,D 和 M. 字符 数值 I 1 V 5 X 10 L 50 C 100 D 500 M 1000 例如, 罗马数字 2 写做 I ...
- LeetCode第四天--罗马数字转整数
题目描述: 罗马数字包含以下七种字符: I, V, X, L,C,D 和 M. 字符 数值 I 1 V 5 X 10 L 50 C 100 D 500 M 1000 例如, 罗马数字 2 写做 II ...
- C++ LeetCode简单程序:罗马数字转整数
写在最前 无法掩饰算法写出来并且程序调试成功的喜悦感,并且会享受想方法和调试的过程.下面这个程序很简单,不过还是想要记录一下,因为当你不知道如何实现的时候,就是困难的. 题目描述 罗马数字包含以下七种 ...
- 算法题---罗马数字转整数
罗马数字包含以下七种字符: I, V, X, L,C,D 和 M. 字符 数值 I : 1 V : 5 X : 10 L : 50 C : 100 D : 500 M : 1000 例如, 罗马数字 ...
- leetcode系列--13.罗马数字转整数
leetcode系列–第13题.罗马数字转整数 罗马数字包含以下七种字符: I, V, X, L,C,D 和 M.字符 数值 I 1 V 5 X 10 L 50 C 100 D 500 M 1000 ...
最新文章
- 一文读懂序列建模(deeplearning.ai)之序列模型与注意力机制
- docker-ce版本私有仓库搭建
- ubuntu部署git
- awk、变量、运算符、if多分支
- python中导入模块队列_【每日学习】Python中模块的导入
- Codeforces数据结构(水题)小结
- iOS-仿智联字符图片验证码
- Linux网络协议栈:一个TCP链接的耗时
- poj 1743 二分答案+后缀数组 求不重叠的最长重复子串
- 平面上两直线的夹角求法解析
- 计算机c盘无法扩展,win10c盘无法扩展卷怎么办
- java 读取485_java通信 485
- java模拟器安卓7,指小游Java模拟器
- python实现输出日历_python实现输出日历
- 饮料自动售货机C++
- 经典例题:判断给定数组是否已经排好序
- 服务器名称显示 n a,EXCEL技巧 怎样消除vlookup找不到目标时出现的#N/A
- 链表(线性表的一种存储结构)
- JavaScript高级程序设计(第4版)学习随笔【第五章】
- 3d max材质添加透明贴图异常
热门文章
- 联众创始人鲍岳桥:52 岁还在熬夜写代码! | 人物志
- P1352 没有上司的舞会[树形dp]
- windows server 2003 远程桌面最大连接数调整与windows 2008远程桌面后,本地帐号自动锁定...
- Nios内部RAM固化配置
- wildfly access log 开启
- Ajax实现前台传值到后台
- 反射生成SQL语句入门
- 我的本科毕业论文——Messar即时通讯系统
- [原创]Datagrid和Button控件
- 强大的反编译软件Hopper Disassembler for Mac控制流程图详解