设为首页 加入收藏

TOP

LeetCode――Roman to Integer
2015-07-24 05:50:36 来源: 作者: 【 】 浏览:4
Tags:LeetCode Roman Integer

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
  
    romans = new HashMap
   
    (); 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

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇C++语言笔记系列之十二――C++的.. 下一篇HDU 1542 Atlantis (线段树求矩..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: