代码
public static int romanToInt(String s) {// 创建一个HashMap,将罗马数字字符映射为整数值HashMap<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);// 初始化总和为0int sum = 0;// 遍历输入的罗马数字字符串for (int i = 0; i < s.length(); i++) {// 获取当前字符对应的整数值Integer value = map.get(s.charAt(i));// 如果当前字符不是最后一个字符,且当前字符的值小于下一个字符的值if (i < s.length() - 1 && value < map.get(s.charAt(i + 1))) {// 减去当前字符的值sum -= value;} else {// 否则,加上当前字符的值sum += value;}}// 返回最终的整数值return sum;}
leetcode测试