- 罗马数字转整数(代码+测试)
package LeetCode;
import java.util.HashMap;
class Solution {
public static void main(String[] args) {
Solution solution = new Solution();
int result= solution.romanToInt("MCMXCIV" );
System.out.println(result);
}
public int romanToInt(String s) {
if(s.isEmpty()) return 0;
HashMap<Character,Integer>contain=new HashMap<>();
contain.put('I',1);
contain.put('V',5);
contain.put('X',10);
contain.put('L',50);
contain.put('C',100);
contain.put('D',500);
contain.put('M',1000);
char[]c=s.toCharArray(); //将字符串转换成字符,运行速度会快些
int res=contain.get(c[0]); // get(c[0])=1000 s = "MCMXCIV"
for (int i = 1; i <c.length ; i++) {
int curr=contain.get(c[i]); //get(c[1])
int pre=contain.get(c[i-1]);
if (curr>pre){
res+=curr-2*pre;
}else{
res+=curr;
}
}
return res;
}
}