Вопрос.По заданному строковому значению римской цифры вычислите и верните целочисленный эквивалент. Полный вопрос ищите здесь.

И если вы только начинаете, вы можете взглянуть на первоначальный подход, размещенный здесь и может быть здесь.

Подход 3:Ну, мы, конечно, заимствуем основные идеи из предыдущих подходов. Но мы пытаемся реализовать поиск по-другому. Это определенно ускоряет наше время выполнения на дрожжах. Поиск реализован с использованием статической карты со статическим анонимным блоком для инициализации.

Давайте сразу погрузимся в код —

//Approach 3
//Runtime: 4ms
//Memory usage: 37.2MB
class Solution {
    private static HashMap<Character, Integer> map = new HashMap<>();
    
    static {
        map.put('M', 1000);
        map.put('D', 500);
        map.put('C', 100);
        map.put('L', 50);
        map.put('X', 10);
        map.put('V', 5);
        map.put('I', 1);
    }
    
 public int romanToInt(String s) {
        char[] roman = s.toCharArray();
        int finalInt = 0;
        int curr = map.get(roman[0]);
        int next = 0;
        for(int i = 0; i<roman.length-1; i++) {
            next =map.get(roman[i+1]);
            if(curr>=next) {
          finalInt+=curr;
         }else {
          finalInt-=curr;
         }
            curr = next;
        }
        return finalInt+curr;
    }
}

Больше постов ищите здесь.

Удачи и Чао!