第 44 日:把字符串转换成整数
题目链接:https://leetcode-cn.com/problems/ba-zi-fu-chuan-zhuan-huan-cheng-zheng-shu-lcof/
题目
解题
-
指针+字符判断
解题思路:
我们不知道这个字符串是否前面有空格,是否有符号,是否是数字,是否越界,我们求解思路应该围绕这些展开,所以:
1.使用i
做指针,跳过字符串前面的空格;
2.判断是否有符号,记录给symbol
;
3.接下来是数字部分,如果不是(结束),如果是(进行溢出判断,计算新的res=res*10+(c-'0')
);这部分个人感觉最困难的是这个溢出判断:
我们使用Integer.MAX_VALUE/10
作为边界,因为当此时的c
为数字,那么就要向res
的后面添加,那在这之前就要进行溢出判断(如果res>border
或者res==border&&c>'7'
就会溢出,直接返回对应的最大或最小值)详细代码如下:
class Solution {
public int strToInt(