首页 > 其他 > 详细

LeetCode——Roman to Integer

时间:2014-06-30 09:52:07      阅读:352      评论:0      收藏:0      [点我收藏+]

Given a roman numeral, convert it to an integer.

Input is guaranteed to be within the range from 1 to 3999.

给定一个罗马数字,把它转换成一个整数。

把罗马数字字符串转换成字符数组先,如下表,每个数字仅对应一个字符,而且字符不一样。故可从头开始取值进行对应。

The Roman Symbols

The Romans used a special method of showing numbers, based on the following symbols:

1
5
10
50
100
500
1000
I
V
X
L
C
D
M

	public int romanToInt(String s) {
		Map<Character, Integer> romans = new HashMap<Character, Integer>();
		romans.put('I', 1);
		romans.put('V', 5);
		romans.put('X', 10);
		romans.put('L', 50);
		romans.put('C', 100);
		romans.put('D', 500);
		romans.put('M', 1000);
		char[] ch = s.toCharArray();
		int num = 0, val = 0;
		for (int i = 0; i < ch.length; i++) {
			val = romans.get(ch[i]);
			if (i == ch.length - 1 || romans.get(ch[i + 1]) <= val)
				num += val;
			else
				num -= val;
		}
		return num;
	}

Reference:http://www.mathsisfun.com/roman-numerals.html

LeetCode——Roman to Integer,布布扣,bubuko.com

LeetCode——Roman to Integer

原文:http://blog.csdn.net/laozhaokun/article/details/35584911

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!