在Java中实现罗马数字的数组
时间: 2023-05-21 10:05:37 浏览: 43
可以使用一个HashMap将罗马数字和对应的值存储起来,然后遍历输入的罗马数字字符串,根据当前字符和下一个字符判断对应的值,最后将所有值相加即可。具体实现可以参考以下代码:
```
public static int romanToInt(String s) {
Map<Character, Integer> map = new HashMap<Character, Integer>();
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 len = s.length();
int result = map.get(s.charAt(len - 1));
for (int i = len - 2; i >= 0; i--) {
if (map.get(s.charAt(i)) >= map.get(s.charAt(i + 1))) {
result += map.get(s.charAt(i));
} else {
result -= map.get(s.charAt(i));
}
}
return result;
}
```
该方法的时间复杂度为O(n),空间复杂度为O(1)。