Given a roman numeral, convert it to an integer.

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

题目大意:把罗马数字转换成的整数

遍历每个字符,前一个字符比后一个字符小,相减

 public class Solution{
public int romanToInt(String s) {
s = s.trim();
if (null == s || "".equals(s))
return 0;
HashMap<Character,Integer> map = new HashMap<Character,Integer>();
map.put('I',1);
map.put('V',5);
map.put('X',10);
map.put('L',50);
map.put('C',100);
map.put('D',500);
map.put('M',1000);
int cur = s.length()-1;
int sum = map.get(s.charAt(cur));
int tmp1,tmp2;
cur--;
while(cur>=0){
tmp1 = map.get(s.charAt(cur+1));
tmp2 = map.get(s.charAt(cur));
if(tmp2<tmp1)
sum = sum - tmp2;
else
sum = sum + tmp2;
cur--;
}
return sum;
} public static void main(String[] args){
String param = "CMXLVI";
if(args.length==1){
param = args[0];
}
Solution solution = new Solution();
int res = solution.romanToInt(param);
System.out.println(res);
}
}

最新文章

  1. LeetCode之Unique Binry Search Trees
  2. The URL &quot;filename&quot; is invalid. It may refer to a nonexistent file or folder, or refer to a valid file or folder that is not in the current Web
  3. python简介-copy
  4. RSA PKCS1padding 填充模式
  5. PeopleEditor的取值及赋值
  6. 关于ABP——领域服务的思考
  7. [心得]传统IT转互联网面试经验分享
  8. Linux CentOS7.0 (02)修改主机名和ip地址
  9. class中限定绑定属性__slots__方法
  10. [Swift-2019力扣杯春季初赛]1. 易混淆数
  11. springboot-01 helloworld
  12. SQL Server 2008 分区函数和分区表详解
  13. materials
  14. 怎样用CMD命令强行删除文件?
  15. JZOJ.5328【NOIP2017模拟8.22】世界线
  16. LevelDb日知录之五:MemTable详解
  17. JavaScript里的循环方法之forEach,for-in,for-of
  18. Win10怎么以管理员身份运行CMD命令提示符
  19. SSM整合开发流程
  20. Python 类的设计原则

热门文章

  1. Java作业 题目:16版.情人节送玫瑰花
  2. poj 1061 青蛙的约会+拓展欧几里得+题解
  3. HDU-4332-Constructing Chimney
  4. 常用的PHP函数封装,有排序和数据库操作函数
  5. 解决 SQLPlus无法登陆oracle,PLSql可以登陆,报错ORA-12560
  6. 一分钟理解sdk
  7. div悬浮在屏幕的中间及点击按钮关闭弹出框
  8. bignumber.js是一款用于任意精度十进制和非十进制算术的JavaScript库
  9. 配置 http 反向代理
  10. fork树