[leetcode] 13. Roman to Integer
来源:互联网 发布:数字小姐是谁 知乎 编辑:程序博客网 时间:2024/06/01 11:59
Given a roman numeral, convert it to an integer.
Input is guaranteed to be within the range from 1 to 3999.
这道题是将罗马数字转化为阿拉伯数字,题目难度为Easy。
解题的关键依然在罗马数字的规律上,题目和第12题相关,不了解罗马数字规律的同学可以先看下第12题(传送门)。
从罗马数字的组合规律可以知道,如果某个数字比它右边数字小,两者组合的数字是右边数字减左边数字,如果比右边数字大,两者组合是右边数字加左边数字。这样可以通过遍历整个罗马数字字符串,比较当前位置数字和它右边数字的大小关系,如果比右边数字大,在最终结果上加当前数字,如果比右边数字小,在最终结果上减当前数字,遍历完整个字符串即可得出最终结果。具体代码:
class Solution { int getVal(char ch) { switch(ch) { case 'I': return 1; case 'V': return 5; case 'X': return 10; case 'L': return 50; case 'C': return 100; case 'D': return 500; default: return 1000; } }public: int romanToInt(string s) { int ret = 0; for(int i=0; i<s.size()-1; ++i) { if(getVal(s[i]) < getVal(s[i+1])) ret -= getVal(s[i]); else ret += getVal(s[i]); } ret += getVal(s.back()); return ret; }};
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
- Activity生命周期和启动模式
- Timus 1723 Sandro's Book
- 解决Android 5.0中出现的错误:Service Intent must be explicit
- style的使用
- 关于SVN 操作 提示文件已过时,请先update
- [leetcode] 13. Roman to Integer
- 质因数分解
- 用android studio 生成javadoc
- 关于动态添加多个分类标题并支持切换界面
- MySQL实现序列(Sequence)效果
- 331. Verify Preorder Serialization of a Binary Tree(难)
- js中json的创建和调用
- mfc combo box控件的使用及探究
- 欢迎使用CSDN-markdown编辑器