- 将每个罗马字母对应的整数写成字典格式,将输入的罗马数字字符串转换成列表形式
- 一开始想的是怎么将罗马字母的对应位置找出来,利用列表循环相加
- 后来发现了规律,‘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