[LeetCode]Roman to Integer
来源:互联网 发布:linux 制作镜像 编辑:程序博客网 时间:2024/06/02 02:17
解题思路:
0,先准备一个hash table,把roman numeral对应到int的整数中
1,从最后一个字符向前遍历;记录当前字符temp 和 前一个字符tempPre
2,map temp/tempPre to int, 如果temp < tempPre, 说明这个数字是要减掉的,否则就把这个数字 + 上
上述规律是罗马数字的定义决定的
class Solution {public: std::unordered_map<char, int> romanMapInt; Solution(){ romanMapInt['I'] = 1; romanMapInt['V'] = 5; romanMapInt['X'] = 10; romanMapInt['L'] = 50; romanMapInt['C'] = 100; romanMapInt['D'] = 500; romanMapInt['M'] = 1000; } int romanToInt(string s) { if (s.length() == 0){ return 0; } char preChar = *s.rbegin(); string::reverse_iterator rit = s.rbegin(); int ret = 0; while (rit != s.rend()){ int temp = romanMapInt[*rit]; int tempPre = romanMapInt[preChar]; if (temp < tempPre){ ret -= temp; }else{ ret += temp; preChar = *rit; } ++rit; } return ret; }};
0 0
- [LeetCode]Roman to Integer
- [LeetCode]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: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
- 常用的mac目录地址 你看看你的缓存有多大?几十个G 有吧
- Oracle学习笔记(6)------------多表查询
- APP的不同level的保命措施
- linux vi(vim)常用命令汇总(转)
- 传:九大前缀,三大后缀
- [LeetCode]Roman to Integer
- Oracle学习笔记(7)-----------数据更新、事务处理、数据伪列
- 231 Power of Two
- synchronized 与 Lock 的异同
- 面试总结(一)——Java基础相关知识
- 周期串(数据小):字符串可以由长度为k的字符串重复得到,则k为周期。
- JS高级程序设计14-表单脚本
- 主機獲取不到ip的解決方法
- Java中遍历文件夹的2种方法