Go语言中文网,致力于每日分享编码、开源等知识,欢迎关注我,会有意想不到的收获!

看到题目,是不是超级简单,用 strconv.Atoi 就可以了?题目当然不是这么简单的要求。

1 题目描述

实现atoi函数,以将字符串转换为一个整数。

该函数首先丢弃尽可能多的空格字符,直至找到第一个非空格字符。然后由该字符开始(可能会有正负标志)找出尽可能多的数字字符,最后将其转换为一个整数。

在连续数值字符后可能还会有其他字符,请将这些字符略过,并不影响函数行为。

若字符串第一个非空格字符已非数字字符,或该字符串为空,甚至该字符串为纯空格字符串,其为无效字符串,返回0即可。

注意:

a)仅认为' '为空格字符;

b)假定运行环境存储整数范围属于[−231, 231−1],即32位有符号整数范围。若数值超过该表示范围限制,返回INT_MAX(2^31−1)或INT_MIN(−2^31)。

例子1:

输入:"42"

输出:42

例子2:

输入:" -42"

输出:-42

释义:第一个非空字符是'-',然后取尽可能最多的数位,得到整数42。

例子3:

输入:"4193 with words"

输出:4193

释义:取到3时停止,因后面的字符非数字。

例子4:

输入:"words and 987"

输出:0

释义:第一个非空字符为'w',不是数字也不是+/-符号,因此无需进行后续字符判断,直接返回0。

例子5:

输入:"-91283472332"

输出:-2147483648

释义:"-91283472332"超过了32位有符号整数表示范围,因此返回INT_MIN(−2^31)。

题目出处:

https://leetcode.com/problems/string-to-integer-atoi/

2 解决思路

首先trim掉头部空格字符,找到第一个非空格字符:

若为'+',自下一个字符遍历该字符串,叠加所有连续数字字符,直至找到最大的正整数(若扩展过程变为负数,说明越界,返回32位最大正整数);

若为'-',将negtive设为true,自下一个字符遍历该字符串,叠加所有连续数字字符,直至找到最大的负整数(若扩展过程发现小于最小负整数,说明越界,返回32位最大负整数);

若为数字字符,自当前字符遍历该字符串,叠加所有连续数字字符,直至找到最大的正整数(若扩展过程变为负数,说明越界,返回32位最大正整数)。

3 golang实现代码

https://github.com/olzhy/leetcode/blob/master/8_String_To_Integer/test.go

原文链接:https://leileiluoluo.com/posts/leetcode-string-to-integer.html

本文作者:磊磊落落的博客,原创授权发布

将字符串添加负数_Go语言实现LeetCode算法:8 字符串转整数相关推荐

  1. C语言随笔小算法:取出一个任意整数的每一位数值

    C语言随笔小算法:取出一个任意整数的每一位数值 代码: #include "stdlib.h" #include "stdio.h"//将val的各位取出来 i ...

  2. c语言实现文档中字符串的替换,C语言 16行代码实现字符串中指定字符串替换

    支持: 1.等长字符串替换函数 2.长字符串替换为短字符串post 3.短字符串替换为长字符串测试 4.中文替换spa 注意:短字符串替换成长字符串要注意内存越界.net 函数代码 /* 功 能:将s ...

  3. python提取包含特定字符串的行_python语言----txt中搜索特定字符串所在行

    打开IDLE(python),并新创建一个py文件,编辑内容为: '''本示例演示如何在一个txt文件中搜索特定的字符串,并将其行显示''''''# 1. 打开文件# 2. 读取行信息# 3. 判断是 ...

  4. leetcode算法题--字符串的排列

    原题链接:https://leetcode-cn.com/problems/zi-fu-chuan-de-pai-lie-lcof/ vector<string> res; vector& ...

  5. leetcode算法题--字符串转换整数 (atoi)

    原题链接: https://leetcode-cn.com/problems/string-to-integer-atoi/ https://leetcode-cn.com/problems/ba-z ...

  6. leetcode算法题--字符串相乘

    原文链接:https://leetcode-cn.com/problems/multiply-strings/ 思路如图(来源): string multiply(string num1, strin ...

  7. leetcode算法题--数值的整数次方

    原题链接:https://leetcode-cn.com/problems/shu-zhi-de-zheng-shu-ci-fang-lcof/ 图示: double myPow(double x, ...

  8. 切割字符串长度php,C++_C语言中计算字符串长度与分割字符串的方法,C语言strlen()函数:返回字符串 - phpStudy...

    C语言中计算字符串长度与分割字符串的方法 C语言strlen()函数:返回字符串的长度头文件: #include strlen()函数用来计算字符串的长度,其原型为: unsigned int str ...

  9. R语言将数值类型转换为字符串类型

    R语言将数值类型转换为字符串类型 目录 R语言将数值类型转换为字符串类型 R语言是解决什么问题的? R语言将数值类型转换为字符串类型 安利一个R语言的优秀博主及其CSDN专栏: R语言是解决什么问题的 ...

最新文章

  1. 5,6,7_InfluxDB数据保留策略,InfluxDB的关键概念,带有时区进行查询示例
  2. 关于爬虫中遇到的问题
  3. mysql内连接的自连接_mysql 内连接、外连接、自连接
  4. php凑整10算法,凑整法练习题.doc
  5. Makefile:跟我一起学makefile
  6. 使用HTML5 WebStorage API构建与.NET对应的会话机制
  7. angularjs post返回html_Python 爬虫网页解析工具lxml.html(二)
  8. UINavigationController 直接pop到指定controllerView的方法
  9. SpringBoot接口加密与解密
  10. ⭐️ vue项目使用微信表情;vue引入微信表情emoji;vue中使用微信表情包emoji;
  11. Docker安装以及docker run hello-world 不能下载镜像报错
  12. 我眼中的“阿里月饼事件”
  13. 全基因组重测序数据分析
  14. 有鱼上钩!修改游戏数据前的准备
  15. 5. Django templates模板 (一)
  16. 电脑网络连接有个感叹号,连不上网
  17. 图形界面 V: 列表视图元件 (第二章)
  18. 2022-2028年全球与中国高级计算机断层扫描仪行业发展趋势及投资战略分析
  19. 在线PDF编辑网站http://www.pdfescape.com
  20. 抽屉作业之content部分和抽屉作业页码部分

热门文章

  1. python多进程和多线程一起使用_Python3多进程与多线程区别及使用(2.线程)
  2. 你初吻啥时候没有的​?​
  3. 来潮汕,这些食物不吃后悔一辈子...
  4. 它是世界上最轻的固体!1000℃下不会熔化,上过火星,还能进你家......
  5. 少女为什么会身上香香的?
  6. 费马大定理,集惊险与武侠于一体
  7. 《SAS编程与数据挖掘商业案例》学习笔记之十六
  8. inputstream是否一定要close_汽车加装行李架后,总被交警拦下,类似改装,是否一定要备案...
  9. 计算机应用技术编译原理考试题,《编译原理》练习题库含答案(大学期末复习资料).doc...
  10. ddr4服务器内存频率_镁光出样DDR5内存;紫光发布P5160系列SSD!