首页 > 代码库 > [LeetCode]13 Roman to Integer
[LeetCode]13 Roman to Integer
https://oj.leetcode.com/problems/roman-to-integer/
http://fisherlei.blogspot.com/2012/12/leetcode-roman-to-integer.html
// Symbol Value // I 1 // V 5 // X 10 // L 50 // C 100 // D 500 // M 1,000 public class Solution { public int romanToInt(String s) { Map<Character, 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); char[] chars = s.toCharArray(); Character lastChar = null; int toReturn = 0; for (int i = 0 ; i < chars.length ; i ++) { char curChar = chars[i]; int curValue = map.get(curChar); Integer lastValue = lastChar == null ? null : map.get(lastChar); if (lastValue == null || lastValue >= curValue) { toReturn += curValue; } else { // Last char is wrong toReturn -= lastValue; toReturn += (curValue - lastValue); } lastChar = curChar; } return toReturn; } }
[LeetCode]13 Roman to Integer
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。