package LeetCode1to100;
import java.util.HashMap;
import java.util.Map;
public class LeetCode13 {
public static void main(String[] args) {
Map<String, 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);
map.put("IV", 4);
map.put("IX", 9);
map.put("XL", 40);
map.put("XC", 90);
map.put("CD", 400);
map.put("CM", 900);
System.out.println(romanToInt("MCMXCIVIV", map));
}
public static int romanToInt(String s, Map map) {
char[] ans = s.toCharArray();
int res = 0;
for (int i = 0; i < ans.length; i++) {
res += (int)map.get(String.valueOf(ans[i]));
}
while (s.contains("IV")) {
res -= 2;
s = s.replaceFirst("IV", "");
}
while (s.contains("IX")) {
res -= 2;
s = s.replaceFirst("IX", "");
}
while (s.contains("XL")) {
res -= 20;
s = s.replaceFirst("XL", "");
}
while (s.contains("XC")) {
res -= 20;
s = s.replaceFirst("XC", "");
}
while (s.contains("CD")) {
res -= 200;
s = s.replaceFirst("CD", "");
}
while (s.contains("CM")) {
res -= 200;
s = s.replaceFirst("CM", "");
}
return res;
}
}
package LeetCode1to100;
import java.util.HashMap