LeetCode刷题笔录Roman to Integer
2014-08-22 05:46
316 查看
Given a roman numeral, convert it to an integer.
Input is guaranteed to be within the range from 1 to 3999.
和Integer to Roman那题一样挺无聊的。
遇到I, X, C这三个字母的时候要看一眼后面的是不是V,L什么的。如果是,就减去1(或10,100)。如果不是就加上1(或10,100)。剩下的都是遇上什么字母就加上相应的值。
Input is guaranteed to be within the range from 1 to 3999.
和Integer to Roman那题一样挺无聊的。
遇到I, X, C这三个字母的时候要看一眼后面的是不是V,L什么的。如果是,就减去1(或10,100)。如果不是就加上1(或10,100)。剩下的都是遇上什么字母就加上相应的值。
public class Solution { public int romanToInt(String s) { int res = 0; if(s == null || s.length() == 0) return res; for(int i = 0; i < s.length(); i++){ switch(s.charAt(i)){ case 'I': if(i < s.length() - 1 && (s.charAt(i + 1) == 'V' || s.charAt(i + 1) == 'X')) res -= 1; else res += 1; break; case 'V': res += 5; break; case 'X': if(i < s.length() - 1 && (s.charAt(i + 1) == 'L' || s.charAt(i + 1) == 'C')) res -= 10; else res += 10; break; case 'L': res += 50; break; case 'C': if(i < s.length() - 1 && (s.charAt(i + 1) == 'D' || s.charAt(i + 1) == 'M')) res -= 100; else res += 100; break; case 'D': res += 500; break; case 'M': res += 1000; break; default: return 0; } } return res; } }
相关文章推荐
- leetcode - Integer to Roman
- LeetCode: Roman to Integer
- LeetCode: Roman to Integer
- [leetCode] Integer to Roman
- [LeetCode]Integer to Roman
- LeetCode Online Judge 题目C# 练习 - Integer to Roman
- LeetCode12: Integer to Roman
- [Leetcode 17] 13 Roman to Integer
- [LeetCode] Roman To Integer 解题报告
- Leetcode: Integer to Roman
- LeetCode Online Judge 题目C# 练习 - Roman to Integer
- LeetCode: Integer to Roman
- 【leetcode】Roman to Integer
- leetcode roman to integer
- [Leetcode] Integer to Roman
- LeetCode: Integer to Roman
- LeetCode Integer to Roman
- 【leetcode】Integer to Roman
- [LeetCode]Roman to Integer
- Leetcode: Roman to Integer