leetcode13. Roman to Integer
2017-03-01 16:04
363 查看
13. Roman to Integer
Given a roman numeral, convert it to an integer.Input is guaranteed to be within the range from 1 to 3999.
解法
将各个罗马字母代表的阿拉伯数字加起来,但是4,9,40,90,400,900比较特殊,需要区别对待。/* String[] M = {"", "M", "MM", "MMM"}; String[] C = {"", "C", "CC", "CCC", "CD", "D", "DC", "DCC", "DCCC", "CM"}; String[] X = {"", "X", "XX", "XXX", "XL", "L", "LX", "LXX", "LXXX", "XC"}; String[] I = {"", "I", "II", "III", "IV", "V", "VI", "VII", "VIII", "IX"}; */ public class Solution { public int romanToInt(String s) { int sum = 0; if(s.indexOf("IV") != -1 || s.indexOf("IX") != -1) { sum -= 2; } if(s.indexOf("XL") != -1 || s.indexOf("XC") != -1) { sum -= 20; } if(s.indexOf("CD") != -1 || s.indexOf("CM") != -1) { sum -= 200; } for(int i = 0; i < s.length(); i++) { switch (s.charAt(i)) { case ' ': sum += 0; break; case 'I': sum += 1; break; case 'V': sum += 5; break; case 'X': sum += 10; break; case 'L': sum += 50; break; case 'C': sum += 100; break; case 'D': sum += 500; break; case 'M': sum += 1000; break; default: break; } } return sum; } }
相关文章推荐
- leetcode 13. Roman to Integer
- Leetcode: 13. Roman to Integer(Week2, Easy)
- [Leetcode] 13. Roman to Integer
- LeetCode 13. Roman to Integer 题解(C++)
- 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 -- Easy
- 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-12. Integer to Roman-13. Roman to Integer
- LeetCode 13. Roman to Integer -- 罗马数字转整数
- LeetCode --- 13. Roman to Integer