您的位置:首页 > 其它

13. Roman to Integer

2016-02-10 23:48 363 查看
罗马数字前面的比后面的小就是减前面的数字,用for每次比较两个的话最后一个数溢出了,所以循环前面的n-1个 最后一个肯定是加上的。

public class Solution {

    public int romanToInt(String s) {

        if(s.length()<1)return 0;

        int sum=0;

        int i=0;

        

        for(i=0;i<s.length()-1;i++){

            char c=s.charAt(i);

            char d=s.charAt(i+1);

            if(getValue(c)<getValue(d)){

                sum=sum-getValue(c);

            }

            else{

                sum=sum+getValue(c);

            }

        }

        char d=s.charAt(s.length()-1);

        return sum+getValue(d);

       

    }

     public int getValue(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;  

            }

        }

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: