Leetcode Roman to Integer
2013-10-16 12:58
274 查看
罗马数转整数,比较新鲜。
罗马数的记数方法和组数规则可以参考http://baike.baidu.com/link?url=mYiSRssk7gcAkxAsio8k0tfjy7dZV8PYMYvpW28rLGxfLJimaoIibKS_WPTY2KEy
理解了以后再做就简单了不少。
罗马数的记数方法和组数规则可以参考http://baike.baidu.com/link?url=mYiSRssk7gcAkxAsio8k0tfjy7dZV8PYMYvpW28rLGxfLJimaoIibKS_WPTY2KEy
理解了以后再做就简单了不少。
class Solution { public: bool judge(string s, int i){ if((s[i] == 'V' || s[i] == 'X' )&& s[i-1] == 'I') return true; else if((s[i] == 'L' || s[i] == 'C') && s[i-1] == 'X') return true; else if((s[i] == 'M' || s[i] == 'D') && s[i-1] == 'C') return true; return false; } int romanToInt(string s) { // Note: The Solution object is instantiated only once and is reused by each test case. int ans = 0; if(s.empty()) return ans; int r2i[255]; r2i['I'] = 1, r2i['V'] = 5, r2i['X'] = 10, r2i['L'] = 50, r2i['C'] = 100, r2i['D'] = 500, r2i['M'] = 1000; for(int i = s.size()-1; i >= 0;){ if(i == 0){ ans += r2i[s[i]]; break; } if(judge(s, i)){ ans += (r2i[s[i]]-r2i[s[i-1]]); i -= 2; } else{ ans += r2i[s[i]]; i--; } } return ans; } };
相关文章推荐
- [LeetCode] Integer to Roman 解题报告
- 【leetcode】【12】Integer to Roman
- LEETCODE: Integer to Roman
- leetcode: 13. Roman to Integer
- leetcode之旅(11)-Integer to Roman
- [Leetcode] Roman to Integer
- 13 leetcode - Roman to Integer
- LeetCode Integer to Roman
- leetcode12 Integer to Roman
- #13 LeetCode——Roman to Integer
- 【Leetcode】Roman to Integer
- [leetcode]Integer to Roman
- LeetCode --- 12. Integer to Roman
- LeetCode----- 12.Integer to Roman
- leetcode— Integer to Roman
- LeetCode - Roman to Integer
- 【leetcode】Roman to Integer
- LeetCode 13 Roman to Integer
- 算法分析与设计课程(16):【leetcode】 Integer to Roman
- LeetCode-12:Integer to Roman