LeetCode—13. Roman to Integer
题目
https://leetcode.com/problems/roman-to-integer/description/
罗马数字转整数。
思路及解法
与12题刚好相反,也是没有多大做的意义,仅仅是找规律的问题。。遍历每一个字符,将对应的整数数值加到sum上,要注意的是,一些特殊情况,比如罗马数字的4,在遍历每一个字符的时候实际上是按照整数6加到sum上的,所以最终要减去多出的2。所以我们需要检查字符串中是不是有这样的情况,如果有,就减去相应的数值。还好情况不多。
代码
class Solution {
public int romanToInt(String s) {
int sum=0;
if(s.indexOf("IV")!=-1){sum-=2;}
if(s.indexOf("IX")!=-1){sum-=2;}
if(s.indexOf("XL")!=-1){sum-=20;}
if(s.indexOf("XC")!=-1){sum-=20;}
if(s.indexOf("CD")!=-1){sum-=200;}
if(s.indexOf("CM")!=-1){sum-=200;}
char c[]=s.toCharArray();
int count=0;
for(;count<=s.length()-1;count++){
if(c[count]=='M') sum+=1000;
if(c[count]=='D') sum+=500;
if(c[count]=='C') sum+=100;
if(c[count]=='L') sum+=50;
if(c[count]=='X') sum+=10;
if(c[count]=='V') sum+=5;
if(c[count]=='I') sum+=1;
}
return sum;
}
}