[LeetCode] 13. Roman to Integer
2018-03-30 15:25
411 查看
Given a roman numeral, convert it to an integer.Input is guaranteed to be within the range from 1 to 3999.
class Solution { private int getThousands(String string){ return string.length()*1000; } private int getHunderds(String string){ switch (string){ case "C": return 100; case "CC": return 200; case "CCC": return 300; case "CD": return 400; case "D": return 500; case "DC": return 600; case "DCC": return 700; case "DCCC": return 800; case "CM": return 900; default: return 0; } } private int getTens(String string){ switch (string){ case "X": return 10; case "XX": return 20; case "XXX": return 30; case "XL": return 40; case "L": return 50; case "LX": return 60; case "LXX": return 70; case "LXXX": return 80; case "XC": return 90; default: return 0; } } private int getOnes(String string){ switch (string){ case "I": return 1; case "II": return 2; case "III": return 3; case "IV": return 4; case "V": return 5; case "VI": return 6; case "VII": return 7; case "VIII": return 8; case "IX": return 9; default: return 0; } } public int romanToInt(String s) { int j = 0,i = 0,length = s.length(); while (j < length && s.charAt(j) == 'M') j++; int thousands = getThousands(s.substring(i,j)); i = j; while (j < length && (s.charAt(j) == 'C' || s.charAt(j) == 'D' || s.charAt(j) == 'M')) j++; int hunderds = getHunderds(s.substring(i,j)); i = j; while (j < length && (s.charAt(j) == 'X' || s.charAt(j) == 'L' || s.charAt(j) == 'C')) j++; int tens = getTens(s.substring(i,j)); int ones = getOnes(s.substring(j,length)); return thousands + hunderds + tens + ones; } }
相关文章推荐
- LeetCode-13. Roman to Integer
- [LeetCode]--13. Roman to Integer
- [LeetCode] 13. Roman to Integer 罗马数字转为整数
- leetcode-13. Roman to Integer
- 2017.10.21 LeetCode - 13. Roman to Integer - 28. Implement strStr()
- leetcode 13. Roman to Integer
- LeetCode 13. Roman to Integer
- [LeetCode]13. Roman to Integer
- [Leetcode] 13. Roman to Integer
- [LeetCode] 13. Roman to Integer ❤
- LeetCode-13. Roman to Integer(罗马数字转阿拉伯数字)
- [leetcode] 13. Roman to Integer
- leetcode题解-13. Roman to Integer
- LeetCode - 13. Roman to Integer
- leetcode 13. Roman To Integer
- leetcode--13. Roman to Integer
- [LeetCode] 13. Roman to Integer
- LeetCode 13. Roman to Integer
- LeetCode --- 13. Roman to Integer
- LeetCode *** 13. Roman to Integer