<LeetCode天梯>Day045 罗马数字转整数(哈希表) | 初级算法 | Python

Posted 府学路18号车神

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了<LeetCode天梯>Day045 罗马数字转整数(哈希表) | 初级算法 | Python相关的知识,希望对你有一定的参考价值。

💖作者简介:大家好,我是车神哥,府学路18号的车神🥇
⚡About—>车神:从寝室实验室快3分钟,最慢3分半(那半分钟其实是等绿
📝个人主页:应无所住而生其心的博客_府学路18号车神_CSDN博客
🎉点赞评论收藏 == 养成习惯(一键三连)😋
📖本系列主要以刷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

<LeetCode天梯>Day035 合并两个有序数组(切片法) | 初级算法 | Python

<LeetCode天梯>Day026 反转链表(递归法+(迭代法)双链表法) | 初级算法 | Python