2021.10.01 - 103.罗马数字转整数

1. 题目

在这里插入图片描述
在这里插入图片描述

2. 思路

(1) 模拟法

  • 按照给定规则遍历累加即可。

3. 代码

import java.util.HashMap;
import java.util.Map;

public class Test {
    
    
    public static void main(String[] args) {
    
    
    }
}

class Solution {
    
    
    public int romanToInt(String s) {
    
    
        Map<Character, Integer> map = new HashMap<>();
        map.put('I', 1);
        map.put('V', 5);
        map.put('X', 10);
        map.put('L', 50);
        map.put('C', 100);
        map.put('D', 500);
        map.put('M', 1000);
        int cur = map.get(s.charAt(0));
        int pre = cur;
        int res = cur;
        for (int i = 1; i < s.length(); i++) {
    
    
            cur = map.get(s.charAt(i));
            if (cur > pre) {
    
    
                res += (cur - 2 * pre);
            } else {
    
    
                res += cur;
            }
            pre = cur;
        }
        return res;
    }
}

猜你喜欢

转载自blog.csdn.net/qq_44021223/article/details/120575265