419 · 罗马数字转整数
描述
给定一个罗马数字,将其转换成整数。
输入数据保证返回的结果1到3999的范围内
样例 1:
输入: “IV”
输出: 4
样例 2:
输入: “XCIX”
输出: 99
public class Solution {
/**
* @param s: Roman representation
* @return: an integer
*/
public int romanToInt(String s) {
// write your code here
HashMap<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 ans = 0 ;
ans = map.get(s.charAt(0));
for(int i = 1 ; i < s.length() ; i++){
ans += map.get(s.charAt(i));
if(map.get(s.charAt(i-1)) < map.get(s.charAt(i))){
ans -= map.get(s.charAt(i-1)) * 2 ;
}
}
return ans ;
}
}