【leetcode-python】

请你来实现一个 myAtoi(string s) 函数,使其能将字符串转换成一个 32 位有符号整数。

函数 myAtoi(string s) 的算法如下:

  1. 空格: 读入字符串并丢弃无用的前导空格(" ")
  2. 符号: 检查下一个字符(假设还未到字符末尾)为 '-' 还是 '+'。如果两者都不存在,则假定结果为正。
  3. **转换:**通过跳过前置零来读取该整数,直到遇到非数字字符或到达字符串的结尾。如果没有读取数字,则结果为0。
  4. 舍入: 如果整数数超过 32 位有符号整数范围 [−231, 231 − 1] ,需要截断这个整数,使其保持在这个范围内。具体来说,小于 −231 的整数应该被舍入为 −231 ,大于 231 − 1 的整数应该被舍入为 231 − 1 。

返回整数作为最终结果。

示例 1:

**输入:**s = "42"

**输出:**42

**解释:**加粗的字符串为已经读入的字符,插入符号是当前读取的字符。

复制代码
带下划线线的字符是所读的内容,插入符号是当前读入位置。
第 1 步:"42"(当前没有读入字符,因为没有前导空格)
         ^
第 2 步:"42"(当前没有读入字符,因为这里不存在 '-' 或者 '+')
         ^
第 3 步:"42"(读入 "42")
           ^

示例 2:

**输入:**s = " -042"

输出:-42

解释:

复制代码
第 1 步:"-042"(读入前导空格,但忽视掉)
            ^
第 2 步:"   -042"(读入 '-' 字符,所以结果应该是负数)
             ^
第 3 步:"   -042"(读入 "042",在结果中忽略前导零)
               ^

示例 3:

**输入:**s = "1337c0d3"

**输出:**1337

解释:

复制代码
第 1 步:"1337c0d3"(当前没有读入字符,因为没有前导空格)
         ^
第 2 步:"1337c0d3"(当前没有读入字符,因为这里不存在 '-' 或者 '+')
         ^
第 3 步:"1337c0d3"(读入 "1337";由于下一个字符不是一个数字,所以读入停止)
             ^

示例 4:

**输入:**s = "0-1"

**输出:**0

解释:

复制代码
第 1 步:"0-1" (当前没有读入字符,因为没有前导空格)
         ^
第 2 步:"0-1" (当前没有读入字符,因为这里不存在 '-' 或者 '+')
         ^
第 3 步:"0-1" (读入 "0";由于下一个字符不是一个数字,所以读入停止)
          ^

示例 5:

**输入:**s = "words and 987"

**输出:**0

解释:

读取在第一个非数字字符"w"处停止。

提示:

  • 0 <= s.length <= 200

  • s 由英文字母(大写和小写)、数字(0-9)、' '、'+'、'-' 和 '.' 组成

    class Solution:
    def myAtoi(self, s: str) -> int:
    result = 0
    sign = 1
    s1=s.strip()###去掉首尾空格
    if len(s1) <1:
    return 0
    if s1[0] == '-':
    sign = -1
    s1 = s1[1:]
    elif s1[0] == '+' :
    sign = 1
    s1 = s1[1:]
    for i in s1:
    if '0' in i or '1' in i or '2' in i or '3' in i or '4' in i or '5' in i or '6' in i or '7' in i or '8' in i or '9' in i:
    result = result*10+int(i)
    else:
    break
    resuln = result * sign
    if result * sign<-231:
    resuln = -2
    31
    if result * sign>231-1:
    resuln = 2
    31 -1

    复制代码
          return resuln
相关推荐
计算机毕业编程指导师几秒前
【计算机毕设选题推荐】基于Spark与Hadoop的AI就业收入区域差异分析系统 源码 毕业设计 选题推荐 毕设选题 数据分析 机器学习 深度学习
大数据·python·数据分析·spark·毕业设计·课程设计·ai就业收入
小猴子爱上树5 分钟前
跨马翻译:批量图片翻译与视频字幕、智能抠图一站式在线图片翻译工具
大数据·人工智能·python·音视频
lzqrzpt26 分钟前
临沂LED驱动电源工程选型标准与工艺对比解析
python·单片机·嵌入式硬件·物联网
专业程序开发源28 分钟前
django新闻推荐系统70655-计算机课程设计、毕业设计
java·javascript·spring boot·后端·python·django·课程设计
l1t33 分钟前
修复WSL CreateInstance/E_UNEXPECTED和 mounted read-only 错误
linux·windows·wsl
蒲公英eric38 分钟前
人口增长问题:从 Malthus 到 Logistic 的建模之旅
人工智能·python·数学建模·人口增长问题
全栈练习生38 分钟前
大模型原理之 Softmax
python·ai
迅猛龙办公室39 分钟前
python获取星期字符串
开发语言·python
打工仔折腾 AI40 分钟前
把 AI Agent 托管到家里电脑:UU远程端口映射与CLI实测记录
人工智能·后端·python·langchain·电脑·ai agent 实战
Ruiery41 分钟前
Linux 6.6内核 CPU 深度解析(九):时钟与 TSC — 内核怎么从 PIT/HPET 切到 TSC
linux·运维·服务器