[leetcode]: 13. Roman to Integer
来源:互联网 发布:音乐截取合并软件 编辑:程序博客网 时间:2024/05/16 15:51
1.题目描述
Given a roman numeral, convert it to an integer.
Input is guaranteed to be within the range from 1 to 3999.
罗马数字转10进制
2.分析
罗马字母包括:
I(1)、V(5)、X(10)、L(50)、C(100)、D(500)和M(1000)
规则:
小数出现在左边表示减法,例如IV=5-1=4
小数出现在右边表示加法,例如VIII=5+1+1+1=8
为每个字母建立字典,然后遍历字符串,判断做加法还是减法即可。
3.代码
c++
int romanToInt(string s) { if (s.size() == 0)//空字符串 return 0; unordered_map<char, int> roma; roma['I'] = 1; roma['V'] = 5; roma['X'] = 10; roma['L'] = 50; roma['C'] = 100; roma['D'] = 500; roma['M'] = 1000; int sum = 0; int i; for (i = 0; i < s.size()-1; i++) { if (roma[s[i]] < roma[s[i + 1]])//右边出现大数,说明要做减法 sum -= roma[s[i]]; else//右边出现小数,加法 sum += roma[s[i]]; } sum += roma[s[i]]; return sum; }
0 0
- LeetCode 13. Roman to Integer
- [LeetCode]13.Roman to Integer
- LeetCode --- 13. Roman to Integer
- [Leetcode] 13. Roman to Integer
- [leetcode] 13.Roman to Integer
- leetcode 13. Roman to Integer
- leetcode 13. Roman to Integer
- LeetCode 13. Roman to Integer
- [LeetCode]13. Roman to Integer
- Leetcode 13. Roman to Integer
- leetcode 13. Roman to Integer
- leetcode 13. Roman to Integer
- LeetCode *** 13. Roman to Integer
- LeetCode 13. Roman to Integer
- LeetCode 13. Roman to Integer
- 【LeetCode】13. Roman to Integer
- Leetcode 13. Roman to Integer
- LeetCode 13. Roman to Integer
- spark
- 单例模式常见应用场景
- 应用统计学与R语言实现学习笔记(二)——数据收集
- 编程练习(第10周)
- 关于作用域
- [leetcode]: 13. Roman to Integer
- DAO接口的基本操作
- 数组的数字逆序排列重新存放
- 程序员的出路在哪
- Python读取文件
- java异常处理机制
- 2017年目标------不为繁华易匠心
- 【C++谭浩强版】【第5章 继承与派生】【习题1】公用继承方式数据的输入与输出
- activemq一台机器起多个实例