/**
* Given a roman numeral, convert it to an integer.
*
* Input is guaranteed to be within the range from 1 to 3999.
*/
import java.util.HashMap;
public class RomanToInteger {
static int RomanToInt(String s) {
HashMap<String, Integer> m = new HashMap<String, Integer>();
m.put("I", 1);
m.put("V", 5);
m.put("X", 10);
m.put("L", 50);
m.put("C", 100);
m.put("D", 500);
m.put("M", 1000);
int currentRadix = 1;
int result = 0;
for (int i = s.length() - 1; i >= 0; i--) {
int radix = m.get(s.substring(i, i + 1));
if (radix >= currentRadix) {
result += radix;
currentRadix = radix;
} else {
result -= radix;
}
}
return result;
}
public static void main(String[] args) {
System.out.println(RomanToInt("I"));
System.out.println(RomanToInt("X"));
System.out.println(RomanToInt("C"));
System.out.println(RomanToInt("MCMLXXVI"));
System.out.println(RomanToInt("MMMCMXCIX"));
}
}
[LeetCode Java] 13 Roman to Integer
最新推荐文章于 2026-06-24 23:43:29 发布
本文介绍了一种将罗马数字转换为整数的方法,并提供了一个Java实现示例。该方法使用哈希映射来存储罗马数字及其对应的整数值,并通过遍历输入字符串来计算最终的整数值。


6954

被折叠的 条评论
为什么被折叠?



