leetcode作业2

题目为罗马数字转整数,题目本身比较简单,主要就是当前字符和队名的大小进行匹配,如果是特殊字符则按照规则加减,在本题目中遇到的一个问题就是python中与c++中对数组的访问形式是不同的,最初想返回下标的时候用的是i.index(m)后来在提交之后发现错误,回头查找发现index()方法返回的是在该列表中出现的最早的目标元素,于是为了使用这个下标判断是否到了最后一个字节就不得不再定义一个新的index变量

class Solution:
    def romanToInt(self, s):
        """
        :type s: str
        :rtype: int
        """
        length=len(s)
        res=0
        index=0
        for i in s:
            if i =='I':
                if index+1==length:
                    res+=1
                elif (s[index+1]!='V' and s[index+1]!='X'):
                    res+=1
                elif(s[index+1]=='V' or s[index+1]=='X'):
                    res-=1
            elif i=='V':
                res+=5
            elif i=='X':
                if index+1==length:
                    res+=10
                elif (s[index+1]!='L' and s[index+1]!='C'):
                    res+=10
                elif(s[index+1]=='L' or s[index+1]=='C'):
                    res-=10
            elif i=='L':
                res+=50
            elif i=='C':
                if index+1==length:
                    res+=100
                    print('123')
                elif (s[index+1]!='D' and s[index+1]!='M'):
                    res+=100
                elif(s[index+1]=='D' or s[index+1]=='M'):
                    res-=100
            elif i=='D':
                res+=500
            elif i=='M':
                res+=1000
            index+=1;
        return res

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值