零题目:算法(leetode,附思维导图+全解)300题(8)字符字符串转换整数(atoi)1.题目描述2.解决方案概览(思维导图).png)3.所有解决方案1??Scheme11)Code://Scheme1varmyAtoi=function(s){constl=s.length,numStrArr=['0','1','2','3','4','5','6','7','8','9'];letindex=0,//positive,Negativecasesign=undefined,//结果字符串resStr='';//1)继续删除前面的空格字符while(indexMath.pow(2,31)-1?Math.pow(2,31)-1:resValue;//4)返回最终结果returnresValue;}2方案21)代码://方案2方案1的“优化版”,其实不需要进行去掉前面的空格等操作,并且直接使用JS自带的parseInt()varmyAtoi=function(str){//1)直接使用parseInt(),这样可以帮助我们省去很多“预处理工作”letresValue=parseInt(str);//2)边界处理//边界1:“+-12”(核心:只有+、-等字符,此时parseInt(resStr)为NaN,即NotANumber)if(isNaN(resValue)){返回0;}else{//边界2:范围上下边界的处理resValue=resValueMath.pow(2,31)-1?Math.pow(2,31)-1:resValue;}//3)返回最终结果returnresValue;};3Scheme31)code://Scheme3statemachinevarmyAtoi=function(str){//根据当前字符获取要改变到哪个状态charconstgetStateIndex=char=>{constnumStrArr=['0','1','2','3','4','5','6','7','8','9'];//流的初始值是'end'状态,其实也可以写成其他的方式letresStateIndex=3;如果(char===''){resStateIndex=0;}elseif(char==='+'||char==='-'){resStateIndex=1;}elseif(numStrArr.includes(char)){resStateIndex=2;}返回resStateIndex;};//1)初始化各种值,特别是tableMap的定义!!constl=str.length,//状态机的tableMap={'start':['start','signed','in_number','end'],'signed':['end','end','in_number','end'],'in_number':['end','end','in_number','end'],'end':['end','end','end','结尾'],};//state:当前状态state值letstate='start',sign=1,index=0,资源值=0;//2)不断向后遍历字符串str,根据当前遍历的字符char不断更新state、resValue、sign等值,//当index>=l||state==='end',退出遍历while(indexMath.pow(2,31)-1?Math.pow(2,31)-1:resValue;//5)返回结果returnresValue;}四更1进度1)LeetCode:307/23902)《剑指offer》:66/66.3)相关学习资料和笔记汇总:https://github.com/CYBYOB/algorithm-leetcode/tree/master/data%26notes。4)注:所有题目大概有2-5个解答,以后会不断更新题解。敬请关注~欢迎大家进群学习交流解决问题拿高薪~2GitHub-LeetCode项目仓库0)本项目地址:https://github.com/CYBYOB/algorithm-leetcode.目标与愿景:让大家具备一定的算法能力,在面试中应对算法(能举一反三的同学也能融入自己的肌肉和血液,甚至为公司的业务和技术赋能)。我还是每周更新——保证每周都有新题和新解,刺激你的神经和刷题欲望。欢迎对算法感兴趣的同学加入我们的社区。QQ群:933919972;作者QQ:1520112971;作者VX:c13227839870(可以拉你进群,一起学习交流~)。3作者标签1)《BAT小伪全栈工程师,专注前端,偶尔写点后端》。2)2019微信小程序应用开发大赛-全国三等奖;2019CODA大赛-Top17/211并获得“优秀团队”等称号3)“半自媒体人”,在校期间,个人公众号(IT三少。新自媒体(公众号)编号:马农三少)半年内实现0到5.8K+粉丝增长等。