leetcode_13_Roman to Integer
2017-11-06 10:30
399 查看
本题就是找到规律,根据几个字母的规律组成相对应的整数。
1. 找规律需要列出来大部分的项,然后认真比对找;
2.被减的因子只能是1,10或者100;
3.相减的项只有一次,就是只减一次,减去一个1,一个10,或者一个100;
4.只有特定的字符减去特定的字符,比如10和5去减1;50和100去减10;500和1000去减100.
根据以上的规律,控制的因素比较多,那么根据这些控制的因素就可以很容易的用代码表达出来。
int romanToInt(string s) {
int sum = 0;
int strSize = s.length();
int i=0;
while(i<strSize)
{
switch(s[i])
{
case 'M':sum += 1000; break;
case 'D':sum += 500;break;
case 'C':if(i+1<strSize&&(s[i+1] == 'D'||s[i+1] == 'M')) sum -= 100; else sum += 100;break;
case 'L':sum += 50;break;
case 'X':if(i+1<strSize&&(s[i+1] == 'L'||s[i+1] == 'C')) sum -= 10; else sum += 10;break;
case 'V':sum += 5;break;
case 'I':if(i+1<strSize&&(s[i+1] == 'V'||s[i+1] == 'X')) sum -= 1; else sum += 1;break;
}
i++;
}
return sum;
}
相关文章推荐
- 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
- 013_LeetCode_13 Roman to Integer 题解
- LeetCode(13) Roman to Integer
- leetcode 13 -- Roman to Integer
- Leetcode 13 Roman to Integer
- [Leetcode 13, Easy] 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
- leetcode13 Roman to Integer