1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > (day 51 - 字符转化为数字 ) 剑指 Offer 67. 把字符串转换成整数

(day 51 - 字符转化为数字 ) 剑指 Offer 67. 把字符串转换成整数

时间:2022-10-23 14:03:46

相关推荐

(day 51 - 字符转化为数字 ) 剑指 Offer 67. 把字符串转换成整数

题目

题链:剑指 Offer 67. 把字符串转换成整数

题解

K神大佬详细题解:面试题67. 把字符串转换成整数(数字越界处理,清晰图解)

题目怎么说呢、难度在于很麻烦,要仔细。

大概步骤:

先去除两边空格、转化为字符数组再判断字符数组是否为0、为0直接返回0再设置一个变量sign表示正负判断第一是否为正负字符、为﹣就将sign改为-1、且将开始遍历的索引改为1然后开始遍历、先判断是否为数字、不是直接返回0再判读是否超过最大值、超过根据符号±直接返回都不满足5、6条件就是进行拼接了最后遍历完成直接返回res*sign

class Solution {public int strToInt(String str) {char[] chars = str.trim().toCharArray();if (chars.length == 0){return 0;}int sign = 1, i = 0;int res = 0,maxOrMin = Integer.MAX_VALUE / 10;if (chars[i] == '-'){sign = -1;i = 1;}else if (chars[i] == '+'){i = 1;}for (int j = i; j < chars.length; j++) {if (chars[j] < '0' || chars[j] > '9'){break;}if (res > maxOrMin || (res == maxOrMin && chars[j] > '7')){return sign == 1 ? Integer.MAX_VALUE:Integer.MIN_VALUE;}res = res*10 + (chars[j] - '0');}return res*sign;}}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。