Leetcode简单题罗马数字转整数
来源:互联网 发布:淘宝客导购推广位 编辑:程序博客网 时间:2024/06/05 08:11
题目来源:https://leetcode.com/problems/roman-to-integer/description/
题目简单描述:要求输入[1,3999]范围的罗马数字,能转换成整数输出。
题目分析:
罗马数字罗马数字IVXLCDM整数1510501005001000
规则:
- 相同的数字连写表示这些数字相加,如III表示3
- 小的数字在大的数字左边,表示大的数字减去小的数字如IV表示数字4
- 小的数字在大的数字右边,表示全部相加,如VII表示为7
- 在一个数字上面画一条横线表示这个数字本身的值乘以1000,(此题中这种情况不予考虑)
解题思路:
从左往右按字符扫描,若当前字符数值大于或者等于他后面的字符数值,则sum=sum+此字符的值,否则,sum = sum-此字符的值
对于最后一个字符,都是加在sum上的。
代码:
class Solution { public int romanToInt(String s) { char[] roman = s.toCharArray(); int sum = 0; int s1 =0,s2=0;Map<Character, Integer> m = new HashMap<Character,Integer>(){{ put('I', 1); put('V', 5); put('X', 10); put('L', 50); put('C', 100); put('D', 500); put('M', 1000); }}; for (int i = 0; i < roman.length-1; i++) { s1 = (int)m.get(roman[i]); s2 = (int)m.get(roman[i+1]);if (s1>=s2) {sum = sum +s1;}else {sum = sum-s1;}} sum += (int)m.get(roman[roman.length-1]); return sum; }}
阅读全文
0 0
- Leetcode简单题罗马数字转整数
- LeetCode 罗马数字转整数
- [LeetCode]Integer to Roman整数转罗马数字
- (LeetCode) Roman to Integer --- 罗马数字转整数
- 罗马数字转整数
- 整数转罗马数字
- LintCode:整数转罗马数字
- LintCode_419_罗马数字转整数
- LintCode_418_整数转罗马数字
- Lintcode 罗马数字转整数
- [Lintcode]罗马数字转整数
- lintcode -- 罗马数字转整数
- lintcode -- 整数转罗马数字
- Lingcode 整数转罗马数字
- 罗马数字转整数
- 整数转罗马数字-LintCode
- 罗马数字转整数-LintCode
- LeetCode 13. Roman to Integer 罗马数字转整数
- Calico 的网络结构是什么?- 每天5分钟玩转 Docker 容器技术(68)
- Android百度地图(二):百度地图sdk显示位置点、图层绘制
- 个人C++学习笔记记录(一)
- 计蒜客-易彰彪的一张表
- 在anaconda3中怎么安装软件开发框架,软件库
- Leetcode简单题罗马数字转整数
- 安装win7+Ubuntu16.04双系统
- 使用Unity3D制作游戏加载效果(协程)
- 转载synchronized
- 《C++ Concurrency in Action》笔记7 mutex(1)
- 5分钟搞定android混淆
- Spring Boot +Mybatis+druid动态多数据源自由切换
- 后端数据采集方案总结
- WebServie VS ICE