首页 > 代码库 > LeetCode 13.Roman to Integer 罗马数字转阿拉伯数字
LeetCode 13.Roman to Integer 罗马数字转阿拉伯数字
对于罗马数字转阿拉伯数字切入点有两个:
1、小数字出现在大数字前面只能使用一个(例如IV正确,IIV就是错误的)
2、除了情况1之外直接使用累加就ok
1 public int romanToInt(String s){ 2 if(s.length() < 1){ 3 return 0; 4 } 5 int result = 0; 6 for(int i=0;i<s.length();i++){ 7 result += getRomanValue(s.charAt(i)); 8 if(i<s.length()-1){ 9 if( getRomanValue(s.charAt(i)) < getRomanValue(s.charAt(i+1)) ){ 10 result -= 2*getRomanValue(s.charAt(i)); 11 } 12 } 13 } 14 return result; 15 } 16 public int getRomanValue(char c){ 17 Map<Character,Integer> map = new HashMap<Character, Integer>(); 18 map.put(‘I‘,1); 19 map.put(‘V‘,5); 20 map.put(‘X‘,10); 21 map.put(‘L‘,50); 22 map.put(‘C‘,100); 23 map.put(‘D‘,500); 24 map.put(‘M‘,1000); 25 return map.get(c); 26 }
LeetCode 13.Roman to Integer 罗马数字转阿拉伯数字
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。