Roman to Integer

本文提供了一个将罗马数字转换为整数的Java程序实现,输入确保在1到3999之间。

Given a roman numeral, convert it to an integer.

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

 

 1 public class Solution {
 2     public int romanToInt(String s) {
 3         HashMap<String, Integer> numbers = new HashMap<String, Integer>();
 4         numbers.put("M", 1000);
 5         numbers.put("CM", 900);
 6         numbers.put("D", 500);
 7         numbers.put("CD", 400);
 8         numbers.put("C", 100);
 9         numbers.put("XC", 90);
10         numbers.put("L", 50);
11         numbers.put("XL", 40);
12         numbers.put("X", 10);
13         numbers.put("IX", 9);
14         numbers.put("V", 5);
15         numbers.put("IV", 4);
16         numbers.put("I", 1);
17         int result = 0;
18         for(int i = 0; i < s.length(); i ++){
19             if(i + 1 < s.length() && numbers.containsKey(s.substring(i, i + 2))){ 
20                 result += numbers.get(s.substring(i, i + 2)); 
21                 i ++;
22             }
23             else result += numbers.get(s.substring(i,i + 1));
24         }
25         return result;
26     }
27 }

 

转载于:https://www.cnblogs.com/reynold-lei/p/3891666.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值