【leetcode刷题笔记】Roman to Integer
Given a roman numeral, convert it to an integer.
Input is guaranteed to be within the range from 1 to 3999.
题解:转换的方法:从左往右扫描罗马字符,如果当前的字符对应的数字比上一个数字小,就直接加上这个数字;否则加上这个数字并且减去上一个数字的两倍,然后更新上一个数字。利用一个HashMap存放罗马字符和数字的对应。
罗马数字和阿拉伯数字的对应表格参见http://www.cnblogs.com/sunshineatnoon/p/3856057.html
例如罗马数字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<Character, Integer> map= new HashMap<Character,Integer>(); 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 else 24 result = result + temp - 2*last; 25 last = temp; 26 } 27 28 return result; 29 } 30 }
转载于:https://www.cnblogs.com/sunshineatnoon/p/3856080.html
【leetcode刷题笔记】Roman to Integer相关推荐
- LeetCode刷题笔记2——数组2
LeetCode刷题笔记2--数组2 重塑数组 题目 在 MATLAB 中,有一个非常有用的函数 reshape ,它可以将一个 m x n 矩阵重塑为另一个大小不同(r x c)的新矩阵,但保留其原 ...
- 卷进大厂系列之LeetCode刷题笔记:二分查找(简单)
LeetCode刷题笔记:二分查找(简单) 学算法,刷力扣,加油卷,进大厂! 题目描述 涉及算法 题目解答 学算法,刷力扣,加油卷,进大厂! 题目描述 力扣题目链接 给定一个 n 个元素有序的(升序) ...
- 小何同学的leetcode刷题笔记 基础篇(01)整数反转
小何同学的leetcode刷题笔记 基础篇(01)整数反转[07] *** [01]数学取余法*** 对数字进行数位操作时,常见的方法便是用取余的方法提取出各位数字,再进行操作 操作(1):对10取余 ...
- LeetCode刷题笔记汇总
LeetCode刷题笔记汇总 第一次刷LeetCode写的一些笔记. 1.两数之和 3.无重复字符的最长子串 15.三数之和 18.四数之和 19.删除链表的倒数第 N 个结点 20.有效的括号 21 ...
- 【leetcode刷题笔记】动态规划
#[leetcode刷题笔记]动态规划 石子游戏 public boolean stoneGame(int[] piles) {int N = piles.length;// dp[i][j] is ...
- LeetCode刷题笔记-动态规划-day4
文章目录 LeetCode刷题笔记-动态规划-day4 55. 跳跃游戏 1.题目 2.解题思路 3.代码 45. 跳跃游戏 II 1.题目 2.解题思路 3.代码 LeetCode刷题笔记-动态规划 ...
- LeetCode刷题笔记- 15.三数之和
LeetCode刷题笔记- 15.三数之和 C语言 题目 注意点 C语言 /*** Return an array of arrays of size *returnSize.* The sizes ...
- LeetCode刷题笔记第6题:Z字形变换
LeetCode刷题笔记第6题:Z字形变换 想法: 要完成字符串根据给定的行数从上往下,从左到右完成Z字形排列.当只有一行时直接返回原字符串,当行数大于1时,先以行数构建一个行数数值个空字符串的列表, ...
- leetcode刷题笔记——二分查找
leetcode刷题笔记--二分查找 目前完成的贪心相关的leetcode算法题序号: 中等:80,81 困难:4 来源:力扣(LeetCode) 链接:https://leetcode-cn.com ...
- LeetCode刷题笔记(算法思想 四)
LeetCode刷题笔记(算法思想 四) 七.动态规划 斐波那契数列 70. 爬楼梯 198. 打家劫舍 213. 打家劫舍 II 信件错排 母牛生产 矩阵路径 64. 最小路径和 62. 不同路径 ...
最新文章
- java ec_Java ECKey.setK方法代码示例
- Mac 安装 brew
- InsecureRequestWarning: Unverified HTTPS request is being made to host(requests证书警告)
- php 插入数据 不成功,thinkphp5连接oracle用insert插入数据失败
- mysql 远程load data,PyMySQL将(文件)数据加载到远程MySQL实例时发生错误/异常
- Oracle-11g-R2 RAC 环境下 GPnP Profile 文件
- 开源代码 不开源_提供开源代码反馈的4个最佳实践
- 国外一些知名ASP.Net开源CMS系统
- java的joptionpane空白_java – JOptionPane无法正确显示?
- linux http用户,HTTP完整请求过程
- 【转】字符编码笔记:ASCII、Unicode、UTF-8 和 Base64
- 教你一招最屌的阅读开源项目的姿势
- python装饰器详解 带参数-python中的装饰器详解
- (转)郭广昌:复星账上有400亿现金,未来十年一切围绕C2M战略
- mysql字符串拼接返回
- linux系统如何备份系统软件,Linux系统如何备份
- Excel怎么将两列数据合并成一列
- C++游戏开发入门制作:经典游戏拳皇97
- Android 压力测试 手机重启测试
- python实现炫酷字母雨
热门文章
- 【荐】纯CSS实现苹果MAC官方网站的菜单导航
- fedora core 7下如何安装Fcitx小企鹅输入法
- 几种web报表打印方案的比较
- DataRowVersion与DataRowState C#版
- strongswan 配置文件 /etc/ipsec.conf 速查手册1
- m40型工业机器人_从工业机器人编程及应用到数控机床的安装维修,一次都学习了...
- Arcgis javascript那些事儿(十八)——空间查询的几种方法
- ArcGIS中文注记图层发布服务后变乱码(方框乱码)/如何有效修改注记要素类文字样式
- golang web开发获取get、post、cookie参数
- table多行表头合并 vue_vue elementUI table 自定义表头和行合并的实例代码