leetCode #13 Roman to Integer

来源:互联网 发布:知乎作死段子 编辑:程序博客网 时间:2024/05/20 21:21

题目:罗马数字转整数

分析:说实话做这道题才知道罗马数是怎么看的。。。之前就记得1234这样背。。嗯原理如下:从前往后读,如果后一位比前一位还大,那么它们合起来的值为后一位减去前一位。

答案:

class Solution {public:int romanToInt(string s) {int result = 0;for (int i = 0; i < s.length(); i++){if (i > 0 && romanToIntSingle(s[i]) > romanToIntSingle(s[i - 1])){result = result + romanToIntSingle(s[i]) - 2 * romanToIntSingle(s[i - 1]);}elseresult += romanToIntSingle(s[i]);}return result;}private:int romanToIntSingle(char c){switch ( c){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;}}};

0 0
原创粉丝点击