LeetCode Roman to Integer
来源:互联网 发布:全知视角举例 编辑:程序博客网 时间:2024/06/05 18:27
Given a roman numeral, convert it to an integer.
Input is guaranteed to be within the range from 1 to 3999.
这个题按照罗马数字的计数方法直接模拟就好,关于罗马数字的计数方法可以参考百度百科:http://baike.baidu.com/link?url=uRFEbVjfAx0doZf3O_f7-ur2vss1PnmMwdbONVVF6DKZpEegXlcL0IdQFqZnvnv2MtqLx32YZ3p1-JmhtM7MP_
主要看这三条规则就好:
- V 和 X 左边的小数字只能用 Ⅰ;
- L 和 C 左边的小数字只能用X;
- D 和 M 左边的小数字只能用 C。
class Solution {public: int romanToInt(string s) { int h[257] = {0}; h['I'] = 1; h['V'] = 5; h['X'] = 10; h['L'] = 50; h['C'] = 100; h['D'] = 500; h['M'] = 1000; int sum = 0; for(int i = 0; i < s.size(); i++){ if(s[i] == 'I'){ if(i+1 < s.size() && (s[i+1] == 'X' || s[i+1] == 'V')){ sum = sum + h[s[i+1]] - h[s[i]]; i++; } else sum += h[s[i]]; } else if(s[i] == 'X'){ if(i+1 < s.size() && (s[i+1] == 'L' || s[i+1] == 'C')){ sum = sum + h[s[i+1]] - h[s[i]]; i++; } else sum += h[s[i]]; } else if(s[i] == 'C'){ if(i+1 < s.size() && (s[i+1] == 'D' || s[i+1] == 'M')){ sum = sum + h[s[i+1]] - h[s[i]]; i++; } else sum += h[s[i]]; } else sum += h[s[i]]; } return sum; }};
0 0
- LeetCode Roman to Integer && Integer to Roman
- 【leetcode】Roman to Integer | Integer to Roman
- Leetcode - "Roman to Integer" & "Integer to Roman"
- LeetCode:Roman to Integer,Integer to Roman
- LeetCode Integer to Roman & Roman to Integer
- leetcode - roman to integer & integer to roman
- LeetCode:Roman to Integer
- LeetCode: Integer to Roman
- LeetCode: Roman to Integer
- LeetCode Integer to Roman
- LeetCode: Integer to Roman
- LeetCode : Roman to Integer
- [Leetcode] Roman to Integer
- [Leetcode] Integer to Roman
- Leetcode: Integer to Roman
- Leetcode: Roman to Integer
- LeetCode Integer to Roman
- 【leetcode】Roman to Integer
- Linux 安装.src.rpm源码包的方法
- Spring3 component-scan 引入多个注解包
- 关于图片上传的问题小demo
- LeetCode Roman to Integer
- js计算时间之差
- LeetCode Roman to Integer
- CCDrawNode类的引用
- Ubuntu Server 15.10 打开mysql远程访问(3306端口)
- PHPExcel(读取Excel文件)
- Java 枚举7常见种用法
- hibernate二级缓存 Ehcache配置详解
- Objective-C开发编码规范
- 解决表格被不间断的文字或标点符号撑大的问题
- ios 界面间跳转方法总结[原创]