剑指 Offer 67 把字符串转换成整数
创始人
2024-05-30 19:52:24
0

摘要

面试题67. 把字符串转换成整数

一、字符串解析

根据题意,有以下四种字符需要考虑:

  • 首部空格: 删除之即可;
  • 符号位:三种情况,即 ''+'' , ''−'' , ''无符号";新建一个变量保存符号位,返回前判断正负。
  • 非数字字符:遇到首个非数字的字符时,应立即返回。
  • 数字字符:
  •        字符转数字: “此数字的 ASCII 码” 与 “ 00 的 ASCII 码” 相减即可;
  •        数字拼接:若从左向右遍历数字,设当前位字符为c ,当前位数字为x ,数字结果为res ,则数字拼接公式为:

数字越界处理:题目要求返回的数值范围应在 [−231,231−1],因此需要考虑数字越界问题。而由于题目指出 环境只能存储 32 位大小的有符号整数 ,因此判断数字越界时,要始终保持res在 int 类型的取值范围内。

  • 在每轮数字拼接前,判断res在此轮拼接后是否超过 2147483647,若超过则加上符号位直接返回。
  • 设数字拼接边界 bndry=2147483647//10=214748364 ,则以下两种情况越界:

package String;import org.junit.Test;/*** @Classname String.JZ67把字符转为整数* @Description TODO* @Date 2023/3/8 21:45* @Created by xjl*/
public class JZ67把字符转为整数 {public int strToInt(String str) {char[] c = str.trim().toCharArray();if (c.length == 0) {return 0;}int res = 0, bndry = Integer.MAX_VALUE / 10;int i = 0, sign = 1;if (c[0] == '-') {sign = -1;i++;} else if (c[0] == '+') {i++;}for (int j = i; j < c.length; j++) {if (c[j] < '0' || c[j] > '9') {break;}if (res > bndry || res == bndry && c[j] > '7') {return sign == 1 ? Integer.MAX_VALUE : Integer.MIN_VALUE;}res = res * 10 + (c[j] - '0');}return sign * res;}@Testpublic void test(){int i = strToInt("         -42");System.out.println(i);}
}

复杂度分析:

  • 时间复杂度 O(N): 其中 N为字符串长度,线性遍历字符串占用O(N)时间。
  • 空间复杂度 O(N): 删除首尾空格后需建立新字符串,最差情况下占用O(N)额外空间。

博文参考

《leetcode》

相关内容

热门资讯

钻木取火的文言文翻译 钻木取火的文言文翻译  导语:在远古蛮荒时期,人们不知道有火,也不知道用火。以下小编为大家介绍钻木取...
文言文《归去来兮辞》及鉴赏 文言文《归去来兮辞》及鉴赏  归去来兮!田园将芜,胡不归?既自以心为形役,奚惆怅而独悲?悟已往之不谏...
黄鹤楼送孟浩然之广陵改写 黄鹤楼送孟浩然之广陵改写300字  《黄鹤楼送孟浩然之广陵》是李白出蜀壮游期间的作品,也是学生非常喜...
《坛经》中的净土思想 《坛经》中的净土思想  汉传佛教的各个宗派之中,若论影响度之大流传面之广,则净土宗和禅宗无疑名列前茅...
平凡的世界中金波的爱情 平凡的世界中金波的爱情  《平凡的世界》是中国作家路遥创作的一部全景式地表现中国当代城乡社会生活的百...
文言文断句技巧顺口溜 文言文断句技巧顺口溜  导语:我们在给文言文断句的时候要掌握一定的技巧,那么关于这方面的口诀有哪些?...
齐桓公伐楚盟屈完的原文阅读及... 齐桓公伐楚盟屈完的原文阅读及翻译译文  原文阅读:  春,齐侯以诸侯之师侵蔡。蔡溃,遂伐楚。楚子使与...
《假如给我三天光明》阅读练习... 《假如给我三天光明》阅读练习题及答案  (美)海伦.凯勒  ①我们谁都知道自己难免一死。但是这一天的...
形容冬天寒风的词语有哪些 形容冬天寒风的词语有哪些  导语:冬天,小朋友们脸上拂过的是冷冷的冬风,让小朋友们感到非常的寒冷。下...
桃花源记拼音版 桃花源记拼音版  桃(táo)花(huā)源(yuán)记(j&igra...
《溪居即事》翻译赏析 《溪居即事》翻译赏析  《溪居即事》作者为唐朝文学家崔道融。古诗全文如下:  篱外谁家不系船,春风吹...
形容云雾缭绕的语句 形容云雾缭绕的语句  雾竟有如此神奇的力量,它丰富多彩,变幻莫测,是它给这群山增添了无穷的魅力;近处...
离骚注音全文 离骚注音全文  《离骚》中有些字比较偏僻,很多人可能会认错读错,以下是小编整理的离骚注音全文,欢迎参...
弟子规出则悌全文解释 弟子规出则悌全文解释  《弟子规》是清朝康熙时山西绛州人李毓秀所作。下面是小编收集整理的弟子规出则悌...
《归园田居·其一》原文与赏析 《归园田居·其一》原文与赏析  《归园田居·其一》写景而写心,表现见出诗人对污浊官场的鄙夷和厌恶。下...
前后赤壁赋原文 前后赤壁赋原文  《前后赤壁赋》又称《赤壁二赋帖》,是元代书法家赵孟頫于元大德五年(1301)创作的...
《兰亭集序》书法特点 《兰亭集序》书法特点  《兰亭集序》之所以流传千古,不仅因为其立意深远,而且因为其文笔清新流畅,朴素...
《梅花·墙角数枝梅》翻译赏析 《梅花·墙角数枝梅》翻译赏析  “墙角数枝梅”出自宋代诗人王安石的《梅花》。此诗作于王安石第二次罢相...
欧阳修《醉翁亭记》原文与翻译 欧阳修《醉翁亭记》原文与翻译  《醉翁亭记》是北宋文学家欧阳修创作的一篇散文。以下是由小编为您整理的...
春江晚景古诗原文及翻译 春江晚景古诗原文及翻译  古诗,在我们中国的历史上,是一个特别的文化,从古传承至今,已经有了无数年的...