请你来实现一个 atoi 函数,使其能将字符串转换成整数。

首先,该函数会根据需要丢弃无用的开头空格字符,直到寻找到第一个非空格的字符为止。

当我们寻找到的第一个非空字符为正或者负号时,则将该符号与之后面尽可能多的连续数字组合起来,作为该整数的正负号;假如第一个非空字符是数字,则直接将其与之后连续的数字字符组合起来,形成整数。

该字符串除了有效的整数部分之后也可能会存在多余的字符,这些字符可以被忽略,它们对于函数不应该造成影响。

注意:假如该字符串中的第一个非空格字符不是一个有效整数字符、字符串为空或字符串仅包含空白字符时,则你的函数不需要进行转换。

在任何情况下,若函数不能进行有效的转换时,请返回 0。

说明:

假设我们的环境只能存储 32 位大小的有符号整数,那么其数值范围为 [−231,  231 − 1]。如果数值超过这个范围,qing返回  INT_MAX (231 − 1) 或 INT_MIN (−231) 。

示例 1:

输入: "42"输出: 42

示例 2:

输入: "   -42"输出: -42解释: 第一个非空白字符为 '-', 它是一个负号。我们尽可能将负号与后面所有连续出现的数字组合起来,最后得到 -42 。

示例 3:

输入: "4193 with words"输出: 4193解释: 转换截止于数字 '3' ,因为它的下一个字符不为数字。

示例 4:

输入: "words and 987"输出: 0解释: 第一个非空字符是 'w', 但它不是数字或正、负号。    因此无法执行有效的转换。

示例 5:

输入: "-91283472332"输出: -2147483648解释: 数字 "-91283472332" 超过 32 位有符号整数范围。因此返回 INT_MIN (−231) 。

先思考一下,后面我会给出一个解题思路~?

图来自网络

一般的解题思路如下:

1 )删除掉字符串的空格,这里用到了lstrip()方法,截掉字符串左边的空格或指定字符

2 )使用正则表达式 re,找出数字的部分

^:匹配字符串开头

[\ + \ -]:代表一个+字符或-字符

?:前面一个字符可有可无

\d:一个数字

+:前面一个字符的一个或多个

*:前面一个字符的0个或多个

3 )用 minmax 来控制上下界,不要超出了规定。

Python实现:

def myAtoi(s):return max(min(int(*re.findall('^[\+\-]?\d+', s.lstrip())), 2**31 - 1), -2**31)

? 配图角色背景介绍

美国队长本没有超能力,是个瘦弱的年轻人,借由超人士兵血清刺激其人体潜能,使之转化为“完美”的姿态。因此美国队长具有高度的智能、常人远所不及的力量、敏捷、敏锐度、体格,他能够在没有任何辅助的状态下挺举1100磅(500kg)的重量。血清也强化了他的新陈代谢机能,能够将肌肉中的乳酸等有造成疲劳的物质完全代谢掉,这赐给了他正常人完全无法想像的耐久力,如在不到一分钟的时间内跑完1英里(每秒26.6米)等。也正是因此,使他能够以假死状态被冰封了数十年后复生。美国队长的体细胞对酒精免疫,不可能喝醉,对于绝大多数的疾病也拥有免疫力。“Streets of Poison”这集故事中,确认了罗杰斯的肉体会规律性自动分泌超人士兵血清。精神方面,罗杰斯丰富的战斗经验将他训练成了一个高明的战术家,以及优秀的战场指挥官,队友们在战斗中往往都会服从他的指挥。罗杰斯的反射神经与感觉器官都十分的敏锐,这使得他能够毫无阻碍的习得各种武艺(拳击、柔术、合气道、柔道),并靠着他超人的运动能力,在实战中视战术需要随意组合成为一种高度洗练的战斗风格。在混战中他最能够发挥实力,就算是有时遇上远比他强大许多的敌人,依然能够将之击败。就算是在“惊奇漫画”的世界中,他也始终被公认是宇宙中众多超级英雄里最强的近身战高手。此外他曾多次持有托尔的雷神之锤,证明了他拥有着高洁的品格。也由于罗杰斯的对美军无比熟悉,因此他能够对美国国防部高度机密的作战方案给予详细的建议。身为世界上最有名的超级英雄的一员,也使得他能够在广泛的社交活动中进行间谍工作,也与神盾(S.H.I.E.L.D.)保持着连系。另外他在广告艺术、画漫画、教育(高中历史)、执法机关等方面也都有相当成就。队长的唯一武器是一个画有星形的盾牌。这盾牌是由被称为“泛合金”(Vibranium)的罕有金属之合金所制成,马龙麦克连恩博士因意外而制作出了以奈布林为主原料的合金,然而因为其制造过程属意外,所以其原料比例和合金过程全都失传了。它有着吸收能量的功能,而且是“惊奇”宇宙最硬的材质之一。长年的训练令他能够人盾合一,可以百发百中地掷出盾牌,无论是狙击、反弹敌人攻击、跳弹式攻击、连续打击多个目标、或是飞掷转向至敌人背后攻击都完全不是问题。他遵循“不杀人”的原则,在二战后都没有使用过枪类等致命武器,除非是迫于自卫。

? 温故而知新

【LeetCode08】字符串转换整数相关推荐

  1. c++ 32位有符号的整数_【LeetCode】字符串分类字符串转换整数 (atoi)

    " 摘要:本文主要讲述LeetCode字符串分类字符串转换整数 (atoi)解法.主要内容如下: 题目 示例 解题 " 01 - 题目 请你来实现一个 atoi 函数,使其能将字符 ...

  2. 8. 字符串转换整数 (atoi)(正则表达式)

    字符串转换整数--C, Python实现 1. 问题描述与分析 2. C语言实现 3. Python实现 3.1 普通判断法 3.2 正则表达式法 1. 问题描述与分析 问题描述: 问题分析: 该算法 ...

  3. LeetCode8. 字符串转换整数 (atoi)

    LeetCode8. 字符串转换整数 (atoi) 请你来实现一个 atoi 函数,使其能将字符串转换成整数. 首先,该函数会根据需要丢弃无用的开头空格字符,直到寻找到第一个非空格的字符为止. 当我们 ...

  4. [DFA|有限状态机] leetcode 8 字符串转换整数(atoi)

    [DFA|有限状态机] leetcode 8 字符串转换整数(atoi) 1.题目 题目链接 请你来实现一个 atoi 函数,使其能将字符串转换成整数. 首先,该函数会根据需要丢弃无用的开头空格字符, ...

  5. 20190822:(leetcode习题)字符串转换整数 (atoi)

    字符串转换整数 题目 大致思路 代码实现 题目 大致思路 这题主要是乱,思路大家都很容易想,就是把各种情况给码出来就行了,大家见我的代码注释会比较清晰. 几个用得到的方法:trim和substring ...

  6. 力扣——字符串转换整数 (atoi)

    字符串转换整数 (atoi) 请你来实现一个 myAtoi(string s) 函数,使其能将字符串转换成一个 32 位有符号整数(类似 C/C++ 中的 atoi 函数). 函数 myAtoi(st ...

  7. Leetcode 129求根节点到叶节点数字之和、104二叉树的最大深度、8字符串转换整数(atoi)、82删除排序链表中的重复元素II、204二分查找、94二叉树的中序遍历、144二叉树的前序遍历

    Top1:Leetcode 129求根节点到叶节点数字之和 官方题解:https://leetcode.cn/problems/sum-root-to-leaf-numbers/solution/qi ...

  8. 字符串转换整数python_Python将字符串转换为整数

    字符串转换整数python In this tutorial you'll see two ways to convert string to integer in python. 在本教程中,您将看 ...

  9. ⭐算法入门⭐《模拟》中等01 —— LeetCode 8. 字符串转换整数

    文章目录 一.题目 1.题目描述 2.基础框架 3.原题链接 二.解题报告 1.思路分析 2.时间复杂度 3.代码详解 三.本题小知识 四.加群须知 一.题目 1.题目描述   实现一个myAtoi( ...

  10. C++字符串转换整数 (atoi)

    字符串转换整数 (atoi) 一个小更新. 今天仔细的研究了一下int型越界的情况, 顺便把力扣的一道题做了. 请你来实现一个 myAtoi(string s) 函数,使其能将字符串转换成一个 32 ...

最新文章

  1. docker 配置使用宿主机的GPU(ubuntu16.04+cuda10.0+cudnn7)
  2. 网上搜集了点资料,学web的人互相分享共同进步吧(php编码的好习惯必须养成)...
  3. 某程序员吐槽:提离职后领导开始演戏,假装不知道我工资低,对我进行挽留,怎么办?...
  4. 数组方法深入扩展(遍历forEach,filter,reduce等)
  5. easyui 去掉按钮 虚线框
  6. java和js的正则表达式一样吗_JavaScript与Java正则表达式写法的区别
  7. 开发环境配置--Ubuntu+Qt4+OpenCV(三)
  8. 买卖股票的最佳时机|||
  9. 深入理解JVM虚拟机(二):垃圾回收机制
  10. 流水灯c语言程序延时失败,用c8051f340做控制流水灯实验,程序会卡死在延时函数中 ,只要在那加延时函数程序就只能跑到那,代码如下...
  11. php gps 坐标,php 计算gps坐标 距离
  12. 【转】30个你不可不知的CSS选择器
  13. logrotate日志轮转策略
  14. 2017程序员综合素质调研测试
  15. svn server服务器搭建
  16. 数据包络分析--CCR模型
  17. VUE Cascader省市二级联动 二级联动数据
  18. linux cpu 降频,archlinux 给cpu降频
  19. 济南“90后”打金女孩:打造有温度的金属
  20. 怎样给证件照快速改底色?告诉大家一个简单方法

热门文章

  1. pynput 键盘鼠标事件抑制(拦截输出)
  2. 前端 node 使用 TSPL指令集操作 打印机不限品牌 (标签打印机,普通打印机)
  3. 踩坑日记(避坑小指南)(vue中axios用post请求出现406)(没进then函数可在页面f12看看network,可能是http请求错误)
  4. 靖江中等专业学校计算机,江苏靖江中等专业学校2020年有哪些专业
  5. python 滑动验证码_python:TX滑动验证码识别方案一
  6. 品牌推广应用设计的最佳实践
  7. 计算机网络通信论文,计算机网络通信技术应用
  8. 移动广告平台及运营模式
  9. 动漫高清化画质增强(适合普通用户)
  10. elasticsearch 基础 —— Mapping参数boost、coerce、copy_to、doc_values、dynamic、