leetcode--Roman to Integer

来源:互联网 发布:微软sql server 编辑:程序博客网 时间:2024/05/20 21:20

Given a roman numeral, convert it to an integer.

Input is guaranteed to be within the range from 1 to 3999.

解题思路:罗马数字用几个特殊的符号表示特殊的数字,其余的数字用多个符号的左右次序表示。如果一个符号代表的数字比下一个小,则是相减。否则就是相加。

public class Solution {    public int romanToInt(String s) {        int sum=0;        for(int i=0;i<s.length();i++){            if(i<s.length()-1&&getnum(s.charAt(i))<getnum(s.charAt(i+1))){                 sum-=getnum(s.charAt(i));            }            else{                sum+=getnum(s.charAt(i));            }        }        return sum;    }    public int getnum(char c){        if(c=='I')             return 1;        else if(c=='V')            return 5;        else if(c=='X')            return 10;        else if(c=='L')            return 50;        else if(c=='C')            return 100;        else if(c=='D')            return 500;        else            return 1000;    }}
0 0
原创粉丝点击