Вопрос.По заданному строковому значению римской цифры вычислите и верните целочисленный эквивалент. Полный вопрос ищите здесь.
И если вы только начинаете, вы можете взглянуть на первоначальный подход, размещенный здесь и может быть здесь.
Подход 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; } }
Больше постов ищите здесь.
Удачи и Чао!