码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • leetcode 8. 字符串转换整数 (atoi)


    题目描述:
    在这里插入图片描述
    在这里插入图片描述
    解题方法:
    1.使用strip()去掉字符串前后空格
    2.判断是否需要对字符串进行遍历
    1>字符串为空,直接返回0
    2>长度为1,若字符串为非数字,直接返回0,为数字,返回对应数字 使用isdigit()来判断字符是否为数字(是返回True,否为False)
    3>长度大于1,首字符为-或+,但第二位不是数字,则返回空,其余情况进行字符串的循环
    3.字符串遍历:
    1>因为判断字符串是否需要遍历时已经对第一个字符进行了判断,所以遍历从第二个字符开始
    2>遍历到的字符为非数字,则终止遍历,此时已找到对应的数据
    4.对获取到的所有字符进行处理 即nums
    1>首先判断nums是否为空,空则直接返回0
    2>得到的字符串的首字符为0且是正整数,则需要进行去0处理
    3>将得到的字符串进行转换,转换成数字,接着对数据按题目要求进行输出

    关于strip()、isdigit()方法,具体看菜鸟教程,菜鸟教程Python 的字符串内建函数部分

    代码:

    class Solution(object):
        def myAtoi(self, s):
            """
            :type s: str
            :rtype: int
            """
            nums = ''
            s = s.strip()
            if len(s) == 0:
                return 0
            elif len(s)==1:
                if s[0].isdigit():
                    return int(s)
                return 0
            else:
                if (s[0] =='-' or s[0] =='+') and s[1].isdigit():
                    nums +=s[0]
                elif s[0].isdigit():
                    nums+=s[0]
                else:
                    return 0
            for i in range(1,len(s)):
                if s[i].isdigit():
                    nums+=s[i]
                    continue
                else:
                    break  
            if len(nums)<=0:
                return 0
            elif len(nums)==1:
                return int(nums)
            else:
                if nums[0] =='0':
                    nums =nums[1:]
                nums = int(nums)
                if nums< pow(-2,31):
                    return pow(-2,31)
                elif nums>pow(2,31)-1:
                    return pow(2,31)-1
                else:
                    return nums
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
  • 相关阅读:
    speech studio-神经网络定制自己的声音
    LeetCode 刷题 [C++] 第279题.完全平方数
    超强,图解最常用的 10 个机器学习算法!建议收藏
    微软成为PostgreSQL主要贡献者
    如何正确操作封箱机
    人工智能模型数据泄露的攻击与防御研究综述
    星系炸弹(蓝桥杯真题填空题)
    解决GDAL 写FileGDB的中文属性字段和字段值乱码。
    智慧公厕:探索未来公共厕所的创新设计
    蓝桥杯入门即劝退(八)回文数
  • 原文地址:https://blog.csdn.net/huanxianxianshi/article/details/137386834
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号