Leetcode_roman-to-integer
来源:互联网 发布:java set 取值 编辑:程序博客网 时间:2024/06/09 15:25
地址:https://oj.leetcode.com/problems/roman-to-integer/
Given a roman numeral, convert it to an integer.
Input is guaranteed to be within the range from 1 to 3999.
思路:罗马数字的维基百科 http://zh.wikipedia.org/zh/%E7%BD%97%E9%A9%AC%E6%95%B0%E5%AD%97
左减数字值限于I, X, C,且只能左减一次, 比如8 VIII 不能是IIX
右加最多连续三个,如9是 IX不能是VIIII
参考代码:
class Solution {public: inline int c2i(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; case 'M' : return 1000; } } int romanToInt(string s) { int len = s.length(), ans = c2i(s[0]), pre = 0, cur = 0; if(len==1) return ans; for(int i = 1; i<len; ++i) { pre = c2i(s[i-1]); cur = c2i(s[i]); if(pre >= cur) ans += cur; else ans += (cur - 2*pre); } return ans; }};
SECOND TRIAL
class Solution {public: inline int c2n(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; case 'M': return 1000; default: return 0; } } int romanToInt(string s) { int ans = 0, last = 0, cur = 0; for(int i = 0; i<s.length(); ++i) { cur = c2n(s[i]); ans += cur; if(i && cur>last) ans -= 2*last; last = cur; } return ans; }};
0 0
- Leetcode_roman-to-integer
- LeetCode_Roman to Integer
- leetcode_Roman to Integer
- leetcode_Roman to Integer_easy_可以看看方法
- 【Integer转换】Integer to Roman
- string to integer & integer to string
- Integer to Roman & Roman to Integer
- Integer to Roman & Roman to Integer
- 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
- Integer to Roman and Roman to Integer
- LeetCode Integer to Roman & Roman to Integer
- Roman to Integer/Integer to Roman
- leetcode - roman to integer & integer to roman
- "Roman to Integer" and "Integer to Roman"
- Roman to Integer &&Integer to Roman
- 离开学校如何自学修炼成为一名网页设计师(二)
- [Wikioi 1004]四子连棋(复习)
- WPF 窗口页面中画直线
- 001. 3和5的倍数
- 解决linux filesystem错误
- Leetcode_roman-to-integer
- JS常用字符串处理方法总结
- 视图与窗口的基础
- exchange2003安装
- CSS编码顺序研究,提高CSS编码效率
- 用户体验的5个注意事项
- C#中获取IP
- Android中webservice的简单使用以及使用handle在UI线程和子线程中传递数据
- java设计模式之门面模式