Leetcode 13 罗马数字转整数
Posted Aprilnn
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Leetcode 13 罗马数字转整数相关的知识,希望对你有一定的参考价值。
- 将每个罗马字母对应的整数写成字典格式,将输入的罗马数字字符串转换成列表形式
- 一开始想的是怎么将罗马字母的对应位置找出来,利用列表循环相加
- 后来发现了规律,‘IV‘和’I‘+‘V‘只相差2,以此类推,最后将得到的总和减去多少个x里面的2就好了
def Rome(x): dict={ ‘I‘:1, ‘V‘:5, ‘X‘:10, ‘L‘:50, ‘C‘:100, ‘D‘:500, ‘M‘:1000 } z=list(x) print(z) sum=0 for i in z: sum=sum+dict[i] if ‘IV‘ in x or ‘IX‘in x: num = x.count(‘IV‘)+x.count(‘IX‘) sum = sum - num * 2 if ‘XL‘ in x or ‘XC‘in x: num=x.count(‘XL‘)+x.count(‘XC‘) sum=sum-num*20 if ‘CD‘ in x or ‘CM‘in x: num=x.count(‘CD‘)+x.count(‘CM‘) sum=sum-num*200 return sum
以上是关于Leetcode 13 罗马数字转整数的主要内容,如果未能解决你的问题,请参考以下文章
LeetCode 13 罗马数字转整数[找规律 多条件判断] HERODING的LeetCode之路
LeetCode 13. 罗马数字转整数 java 两种解法