LeetCode---13. Roman to Integer

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;
    }
}

猜你喜欢

转载自blog.csdn.net/pnnngchg/article/details/82947983