博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【leetcode刷题笔记】Roman to Integer
阅读量:5134 次
发布时间:2019-06-13

本文共 1189 字,大约阅读时间需要 3 分钟。

Given a roman numeral, convert it to an integer.

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


 

题解:转换的方法:从左往右扫描罗马字符,如果当前的字符对应的数字比上一个数字小,就直接加上这个数字;否则加上这个数字并且减去上一个数字的两倍,然后更新上一个数字。利用一个HashMap存放罗马字符和数字的对应。

罗马数字和阿拉伯数字的对应表格参见

例如罗马数字DCXIX:500+100+10+1+10-2 = 619

代码如下:

1 public class Solution { 2     public int romanToInt(String s) { 3         if(s == null || s.length() == 0) 4             return 0; 5          6         HashMap
map= new HashMap
(); 7 map.put('I', 1); 8 map.put('V', 5); 9 map.put('X', 10);10 map.put('L', 50);11 map.put('C', 100);12 map.put('D', 500);13 map.put('M', 1000);14 15 int length = s.length();16 int result = map.get(s.charAt(0));17 int last = result;18 19 for(int i = 1;i < length;i++){20 int temp = map.get(s.charAt(i));21 if(temp <= last)22 result += temp;23 else24 result = result + temp - 2*last;25 last = temp;26 }27 28 return result;29 }30 }

转载于:https://www.cnblogs.com/sunshineatnoon/p/3856080.html

你可能感兴趣的文章
Java Content Repository API 简介 转自(https://www.ibm.com/developerworks/cn/java/j-jcr/)
查看>>
visio二次开发——图纸解析
查看>>
Activity之间的跳转:
查看>>
iTunes Connect 开发者上手经验(转)
查看>>
vertical-align你为什么不生效
查看>>
C++ 实践总结
查看>>
composer 国内镜像配置
查看>>
软件是天时、地利、人和的产物!
查看>>
python定时清空本目录下除本脚本外的全部文件
查看>>
【PHP】在目标字符串指定位置插入字符串
查看>>
【JS】jQuery设置定时器,访问服务器(PHP示例)配合微信、支付宝原生支付,跳转web网页...
查看>>
实验四2
查看>>
VS2012+Win7网站发布详细步骤
查看>>
Android现学现用第十一天
查看>>
Bin Packing 装箱问题——NPH问题的暴力枚举 状压DP
查看>>
多路复用
查看>>
python 列表
查看>>
Python数据可视化之Pygal(雷达图)
查看>>
当前主流读取Excel技术对比
查看>>
js-格式化数字保留两位小数-带千分符
查看>>