leetcode-13. 罗马数字转整数

2022-06-17 10:07:28 浏览数 (1)

JAVA解法

代码语言:javascript复制
class Solution {
    public int romanToInt(String s) {
        int sum = 0;
        int preNum = getValue(s.charAt(0));
        // 遍历传进来罗马数字的每个字符
        for (int i = 1; i < s.length(); i  ) {
            int num = getValue(s.charAt(i));
            // 前一个字符的值小于后一个字符的值,则表示的是小值,反之为大值
            if (preNum < num) {
                sum -= preNum;
            }else {
                sum  = preNum;
            }
            // 移动前进
            preNum = num;
        }
        sum  = preNum;
        return sum;
    }

    // 返回对应值
    private int getValue(char ch) {
        switch (ch) {
            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;
        }
    }
}

leetcode原题: 13. 罗马数字转整数

0 人点赞