罗马数字与阿拉伯数字转换
2019-04-11 10:49:29来源:博客园 阅读 ()
罗马数字与阿拉伯数字对应关系如下:
且“II”表示2,“III”表示3,“IV”表示4,“VI表示6”,“VII”表示7,“VIII”表示8,“IX”表示9,其余的类似。
阿拉伯数转换成罗马数字
class Solution(object): def intToRoman(self, num): """ :type num: int :rtype: str """ if not num: return "" out = "" i = 3 while i >= 0: out += self.get_roman(i,num//(10**i)) num %= (10**i) i -= 1 return out def get_roman(self,power,quotient): power_to_roman = {0:["I","V","X"],1:["X","L","C"],2:["C","D","M"],3:["M"]} romans = power_to_roman[power] if quotient <= 3: out = quotient*romans[0] elif quotient == 4: out = romans[0]+romans[1] elif quotient == 5: out = romans[1] elif quotient <= 8: out = romans[1]+(quotient-5)*romans[0] else: out = romans[0]+romans[2] return out
罗马数字转换为阿拉伯数字:
class Solution(object): def romanToInt(self, s): """ :type s: str :rtype: int """ if not s: return 0 Roman_to_num = {'I':1,"V":5,"X":10,"L":50,"C":100,"D":500,"M":1000} before = {"V":"I","X":"I","L":"X","C":"X","D":"C","M":"C"} stack = [] num = 0 i = len(s)-1 while i >= 0: if not stack: stack.append(s[i]) else: last = stack.pop() if last in before and s[i] == before[last]: num += Roman_to_num[last] - Roman_to_num[s[i]] else: stack.append(last) stack.append(s[i]) i -= 1 for i in stack: num += Roman_to_num[i] return num
原文链接:https://www.cnblogs.com/wenqinchao/p/10583494.html
如有疑问请与原作者联系
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
下一篇:python函数
- python学习教程,猜数字游戏开发 2019-07-24
- python随机验证码(数字和字母组合) 2019-07-24
- python学习日记1-基础 2019-07-24
- 20190505-旋转数字 2019-05-08
- 20190502-罗马数字转换为数字 2019-05-04
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash