13. Roman to Integer

来源:互联网 发布:2016网络购物数据分析 编辑:程序博客网 时间:2024/05/21 08:48

罗马数字前面的比后面的小就是减前面的数字,用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;  
            }
        }
}

0 0
原创粉丝点击