力扣题库刷题笔记8--字符串转换正数(atoi)

1、题目如下:

 

 2、个人Python代码实现如下:

        这里可以看到,解答错误很多次,实际上就是对于题目的条件读的不够细,导致很多边界值的用例跑不过。而且个人习惯极其不好,没有输入各种可能的输入进行调试,而是直接提交代码,这样的话,其实在考试的时候很难去发现是哪里出了问题。 

        下图是用于对应代码,和题目中的要求:

 代码如下:

class Solution:

    def myAtoi(self, s: str) -> int:

        temp = s.lstrip()                       #将字符串左方空格去掉

        res_temp = ""                           #临时变量,将字符串中的数字加入该变量,最后赋值给输出

        res = 0                                 #输出变量

        flag = ""                               #记录字符串s是否含有正负符号

        #判断第一个字符是否为正负号,如果是,将第一个字符赋值给flag,并在s中删除第一个字符

        if len(temp) > 1:

            if temp[0] == "+" or temp[0] == "-":   

                flag = temp[0]

                temp = temp[1:]

        for i in temp:                          #遍历字符串s,如果字符为数字,则拼接到res_temp,反之,退出循环

            if i.isdigit():

                res_temp += i

            else:

                break                       

        if res_temp:

            if int(res_temp) >= pow(2, 31):

                if flag == "-":

                    res_temp = str(pow(2, 31))

                else:

                    res_temp = str(pow(2, 31) - 1)

            res = int(flag + res_temp)

                

        return res



 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值