首页 > 解决方案 > 解决 LeetCode #13 罗马到整数问题(字符比较)

问题描述

这是问题链接:https ://leetcode.com/problems/roman-to-integer/

我一直在比较 s.charAt() 和罗马字符时遇到问题。我对 JAVA 很陌生。if(s.charAt(i) == 'I') 不应该工作吗?我看到了这个问题的其他解决方案,但解决方案倾向于制作一个字符并将字符串的字符放入该字符中。你能解释一下为什么我的比较不起作用吗?我真的很感谢你提前回答。

类解决方案{

public int romanToInt(String s) {
    int i = 0;
    int sum = 0;
    
    for(i=0;i<s.length();i++)
    {
        if(s.charAt(i) == 'I')
        {
            if(s.charAt(i+1) == 'X') //4
            {
                i++;
                sum += 4;
            }
            else if(s.charAt(i+1) == 'V') //9
            {
                i++;
                sum += 9;
            }
            else
            {
                sum += 1;
            }
                
        }
        else if(s.charAt(i) == 'V')
        {
            sum += 10;
        }
        else if(s.charAt(i) == 'X')
        {
            if(s.charAt(i+1) == 'L') //40
            {
                i++;
                sum += 40;
            }
            else if(s.charAt(i+1) == 'C') //90
            {
                i++;
                sum += 90;
            }
            else
            {
                sum += 10;
            }
        }
        else if(s.charAt(i) == 'L')
        {
            sum += 50;
        }
        else if(s.charAt(i) == 'C')
        {
            if(s.charAt(i+1) == 'D') //400
            {
                i++;
                sum += 400;
            }
            else if(s.charAt(i+1) == 'M') //900
            {
                i++;
                sum += 900;
            }
            else
            {
                sum+=100;
            }
        }
        else if(s.charAt(i) == 'D')
        {
            sum += 500;
        }
        else if(s.charAt(i) == 'M')
        {
            sum += 1000;
        }
            
    }
    return sum;
}

}

标签: stringcharcomparison

解决方案


推荐阅读