Python字典的实战应用【Dream的刷题乐园⚡】❤️LeetCode每日游园系列❤️——罗马数字转整数

举报
是Dream呀 发表于 2022/01/10 22:40:16 2022/01/10
【摘要】 📢📢📢📣📣📣 🐸Hello,大家好我是Dream,欢迎大家来到刷题乐园😜😜😜 🐹游园须知:这片乐园从不缺乏天才,努力才是你的最终入场券!🚀🚀🚀 🐹导游主要使...

在这里插入图片描述

📢📢📢📣📣📣
🐸Hello,大家好我是Dream,欢迎大家来到刷题乐园😜😜😜

🐹游园须知:这片乐园从不缺乏天才,努力才是你的最终入场券!🚀🚀🚀

🐹导游主要使用Python语言,同时欢迎其他语言的小伙伴进来玩耍☀️☀️☀️
🐹游园过程中,如果发现有错误的话,欢迎大家评论区及时斧正❤️❤️❤️

🐹最后,祝大家游园愉快,一起加油进步🍺🍺🍺

💦乐园描述

罗马数字包含以下七种字符: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到 3999 的范围内。

实例:

示例1:

输入:"III" 输出: 3

示例2:

输入:"IV" 输出: 4 

示例3:

输入:"IX" 输出: 9

示例4:

输入:"LVIII" 输出: 58 解释: L = 50, V= 5, III = 3.

示例5:

输入:"MCMXCIV" 输出: 1994 解释: M = 1000, CM = 900, XC = 90, IV = 4.

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19

💦游园准备

这道罗马数字转整数,要比数字转罗马数字简单,因为罗马数字有一个特性。 凡是当前数字小于右边数字的情况,那么total减去当前数字。 其他情况下,total+=当前数字,即可完成解题。

可以使用字典来帮助我们对题的解答,创建字典,将每个罗马数字对应的阿拉伯数字表示出来:

temp={
        'I':1,
        'V':5,
        "X":10,
        'L':50,
        'M':1000,
        'C':100,
        "D":500
    }

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

然后利用函数temp[s[i]] 将具体对应的数字单独抽取出来,进行相应的加减运算。

💦开始游玩

# -*-coding:utf-8 -*-
# @Author:到点了,心疼徐哥哥
# 奥利给干!!!
def luoma(s):
    temp={
        'I':1,
        'V':5,
        "X":10,
        'L':50,
        'M':1000,
        'C':100,
        "D":500
    }
    totle=0
    for i in range(len(s)-1):
        if temp[s[i]]< temp[s[i+1]]:
            totle-=temp[s[i]]
        else:
            totle+=temp[s[i]]
        totle+=temp[s[i-1]]
        return totle
print(luoma('IV'))

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22

在这里插入图片描述

💦游玩总结

The stage extends as far as the heart goes~加油!❤️❤️❤️

**🏅今天是我打卡的第十八天,希望每天都能见到最棒的你🏅**

📢📢📢最后的福利

☀️☀️☀️最后一点小福利带给大家:如果想快速上手python的小伙伴们,这个详细整理PPT可以迅速帮助大家打牢python基础,需要的小伙伴们可以下载一下 Python入门基础教程全套+小白速成+学不会来找我! 🍻🍻🍻
还有自制表白神器,需要自取:
Python表白神器,源码+解析+各种完美配置+浪漫新颖 🍻🍻🍻
在这里插入图片描述
🌲🌲🌲 好啦,这就是今天要分享给大家的全部内容了
❤️❤️❤️如果你喜欢的话,就不要吝惜你的一键三连了~
在这里插入图片描述
在这里插入图片描述

文章来源: xuyipeng.blog.csdn.net,作者:是Dream呀,版权归原作者所有,如需转载,请联系作者。

原文链接:xuyipeng.blog.csdn.net/article/details/120396217

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。