<LeetCode天梯>Day045 罗马数字转整数(哈希表) | 初级算法 | Python
Posted 府学路18号车神
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了<LeetCode天梯>Day045 罗马数字转整数(哈希表) | 初级算法 | Python相关的知识,希望对你有一定的参考价值。
💖作者简介:大家好,我是车神哥,府学路18号的车神🥇
⚡About—>车神:从寝室到实验室最快3分钟,最慢3分半(那半分钟其实是等红绿灯)
📝个人主页:应无所住而生其心的博客_府学路18号车神_CSDN博客
🎉点赞➕评论➕收藏 == 养成习惯(一键三连)😋
📖本系列主要以刷LeetCode(力扣)网站的各类题为标准,实现自我能力的提升为目标⚡
⚡希望大家多多支持🤗~一起加油 😁
- 专栏—>《LeetCode天梯》
其他专栏:
今天又是项目项目项目,啥时候才给我审论文呀,哎!~
是时候给甲方怼回去了,一忍再忍,无需再忍。今天看到了一句话,share给大家:
“工作是做不完的,学习是自己的。”
当我看到这句话的时候,就有一种感觉,确实哈,在工作中提升自己,不断的自学习,项目再烦也只当是自己提升的一个小跳板吧,而不要太在意中间的各种不可理喻的难处,笑笑就好,生活有什么过不去的呢,只当是一个台阶罢了,加油,学习才是自己的!!!
每天进步一点点,就已经很棒很棒了,坚持坚持,不要太累,拒绝内卷,从每日一练开始,每天十分钟,快乐生活一辈子!疫情依旧反复,大家带好口罩啊~ 继续继续,来,今天和车神哥一起来提升自己的Python编程和面试能力吧,刷天梯~
放上我拍的Photo吧!
每日推荐一首歌:银河与星斗——yihuik苡慧
以下为我的天梯积分规则:
每日至少一题:一题积分+10分
若多做了一题(或多一种方法解答),则当日积分+20分(+10+10)
若做了三道以上,则从第三题开始算+20分(如:做了三道题则积分-10+10+20=40;做了四道题则积分–10+10+20+20=60)
初始分为100分
若差一天没做题,则扣积分-10分(周六、周日除外注:休息)
坚持!!!
初级算法
刷题目录
数学
题干
罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。
字符 数值
I 1
V 5
X 10
L 50
C 100
D 500
M 1000
例如, 罗马数字 2 写做 II ,即为两个并列的 1 。12 写做 XII ,即为 X + II 。 27 写做 XXVII, 即为 XX + V + II 。
通常情况下,罗马数字中小的数字在大的数字的右边。但也存在特例,例如 4 不写做 IIII,而是 IV。数字 1 在数字 5 的左边,所表示的数等于大数 5 减小数 1 得到的数值 4 。同样地,数字 9 表示为 IX。这个特殊的规则只适用于以下六种情况:
- I 可以放在 V (5) 和 X (10) 的左边,来表示 4 和 9。
- X 可以放在 L (50) 和 C (100) 的左边,来表示 40 和 90。
- C 可以放在 D (500) 和 M (1000) 的左边,来表示 400 和 900。
给定一个罗马数字,将其转换成整数。
示例1:
输入: s = “III”
输出: 3
示例2:
输入: s = “IV”
输出: 4
示例3:
输入: s = “IX”
输出: 9
示例4:
输入: s = “LVIII”
输出: 58
解释: L = 50, V= 5, III = 3.
示例5:
输入: s = “MCMXCIV”
输出: 1994
解释: M = 1000, CM = 900, XC = 90, IV = 4.
哈希表
分析:
其实道理都一样,先将这些关键词存入哈希表,然后遍历查表获取表的值在相加得到最后的结果。
class Solution:
def romanToInt(self, s: str) -> int:
dictory = 'I':1, 'V':5, 'X':10, 'L':50, 'C':100, 'D':500, 'M':1000
res = 0
n = len(s)
for x in range(n-1,-1,-1):
if res > 4*dictory[s[x]]:
res -= dictory[s[x]]
else:
res += dictory[s[x]]
return res
今天数学就结束了,最后一章其他,哇,好快呀,从最开始10月27号到现在,这个算法题就要刷完了,耶!!!
坚持本来就有意义!
Reference
作者:力扣 (LeetCode)
链接:https://leetcode-cn.com/leetbook/read/top-interview-questions-easy/xn4n7c/
来源:力扣(LeetCode)
今日得分:+10
总得分:910加油!!!
❤坚持读Paper,坚持做笔记,坚持学习,坚持刷力扣LeetCode❤!!!
坚持刷题!!!打天梯!!!
⚡To Be No.1⚡⚡哈哈哈哈
⚡创作不易⚡,过路能❤关注、收藏、点个赞❤三连就最好不过了
ღ( ´・ᴗ・` )
❤
『
欲把西湖比西子,淡妆浓抹总相宜。
』
以上是关于<LeetCode天梯>Day045 罗马数字转整数(哈希表) | 初级算法 | Python的主要内容,如果未能解决你的问题,请参考以下文章
<LeetCode天梯>Day016 整数反转(暴力求解+直接反转) | 初级算法 | Python
<LeetCode天梯>Day029环形链表(哈希表+双指针) | 初级算法 | Python
<LeetCode天梯>Day003 买卖股票的最佳时机 II(动态规划法) | 初级算法 | Python
<LeetCode天梯>Day027 合并两个有序链表(递归法+改进递归) | 初级算法 | Python