[LeetCode]13. Roman to Integer
2017-04-25 14:11
351 查看
[LeetCode]13. Roman to Integer
题目描述
思路
做一个字符和数字对应的映射,考虑罗马数字的逻辑,IV表示4,而3则用III表示。因此可能出现的需要考虑的两位字符表示一个数的情况比较简单,只有左边位置的数小于右边位置的数时,才表示右边减左边的值,否则只需要相加即可。
代码
#include <iostream> #include <string> #include <unordered_map> using namespace std; class Solution { public: int romanToInt(string s) { unordered_map<char, int> t = { { 'I' , 1 }, { 'V' , 5 }, { 'X' , 10 }, { 'L' , 50 }, { 'C' , 100 }, { 'D' , 500 }, { 'M' , 1000 } }; int res = t[s[s.size() - 1]]; for (int i = s.size() - 2; i >= 0; --i) { if (t[s[i]] < t[s[i + 1]]) res -= t[s[i]]; else res += t[s[i]]; } return res; } }; int main() { Solution s; cout << s.romanToInt("IV") << endl; system("pause"); return 0; }
相关文章推荐
- LeetCode 13. Roman to Integer
- [LeetCode]--13. Roman to Integer
- LeetCode - 13. Roman to Integer
- LeetCode 13. Roman to Integer和12. Integer to Roman
- LeetCode - 13. Roman to Integer - 思考if-else与switch的比较 - ( C++ ) - 解题报告
- [leetcode]13. Roman to Integer(Java)
- [leetcode] 13. Roman to Integer
- LeetCode_Easy心得:13. Roman to Integer (C语言)
- leetcode 13. Roman to Integer
- LeetCode *** 13. Roman to Integer
- [LeetCode]13. Roman to Integer
- leetcode13. 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(Week2, Easy)