码迷,mamicode.com
首页 > 其他好文 > 详细

Roman to Integer

时间:2015-05-04 23:57:15      阅读:184      评论:0      收藏:0      [点我收藏+]

标签:

https://leetcode.com/problems/roman-to-integer/

Given a roman numeral, convert it to an integer.

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

 1 import java.util.HashMap;
 2 import java.util.Map;
 3 
 4 public class Solution {
 5     public static int romanToInt(String s) {
 6         Map<String,Integer>roman2int=createMap();
 7         int ans=0;
 8         int start=0;int end=0;
 9         int len=s.length();
10         while(end<len){
11             start=end;end++;
12             String t=""+s.charAt(start);
13             while(end<len&&roman2int.containsKey(t+s.charAt(end))){
14             t+=s.charAt(end);
15             end++;
16             }
17             ans+=roman2int.get(t);
18         }
19         return ans;
20     }
21     public static Map<String,Integer> createMap(){
22     Map<String,Integer>roman2int=new HashMap();
23         roman2int.put("I", 1);
24         roman2int.put("II", 2);
25         roman2int.put("III", 3);
26         roman2int.put("IV", 4);
27         roman2int.put("V", 5);
28         roman2int.put("VI", 6);
29         roman2int.put("VII", 7);
30         roman2int.put("VIII", 8);
31         roman2int.put("IX", 9);
32         roman2int.put("X", 10);
33         roman2int.put("XX", 20);
34         roman2int.put("XXX", 30);
35         roman2int.put("XL", 40);
36         roman2int.put("L", 50);
37         roman2int.put("LX", 60);
38         roman2int.put("LXX", 70);
39         roman2int.put("LXXX", 80);
40         roman2int.put("XC", 90);
41         roman2int.put("C", 100);
42         roman2int.put("CC", 200);
43         roman2int.put("CCC", 300);
44         roman2int.put("CD", 400);
45         roman2int.put("D", 500);
46         roman2int.put("DC", 600);
47         roman2int.put("DCC", 700);
48         roman2int.put("DCCCC", 800);
49         roman2int.put("CM", 900);
50         roman2int.put("M", 1000);
51         roman2int.put("MM", 2000);
52         roman2int.put("MMM", 3000);
53         return roman2int;
54     }
55     public static void main(String[]args){
56     System.out.println(romanToInt("MDLXVII"));
57     }
58 }

 

Roman to Integer

标签:

原文地址:http://www.cnblogs.com/qq1029579233/p/4477885.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!