От римского к целому числу из Leetcode Неудачный тестовый пример «MCMXCIV»JAVA

Программисты JAVA общаются здесь
Anonymous
От римского к целому числу из Leetcode Неудачный тестовый пример «MCMXCIV»

Сообщение Anonymous »

Я решаю задачу преобразования римского числа в целое число, но не понимаю, почему мой код работает. Я устранил неполадки, и по какой-то причине doubles.containsKey(s.substring(i, i + 2)) каждый раз оценивается как false.
import java.util.Map;

class Solution {
public int romanToInt(String s) {
int res = 0;
Map 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);

Map doubles = new HashMap();
map.put("IV", 4);
map.put("IX", 9);
map.put("XL", 40);
map.put("XC", 90);
map.put("CD", 400);
map.put("CM", 900);

for (int i = 0; i < s.length(); i++) {
String c = s.substring(i, i + 1);
if (i != s.length() - 1 && doubles.containsKey(s.substring(i, i + 2))) {
res += doubles.get(s.substring(i, i + 2));
System.out.println(res);
i++;
} else {
res += map.get(c);
}
}
return res;
}
}


Подробнее здесь: https://stackoverflow.com/questions/785 ... se-mcmxciv

Вернуться в «JAVA»