![]()
class Solution {
public int myAtoi(String str) {
str = str.trim();
int n = str.length();
if(n == 0) return 0;
char[] arr = str.toCharArray();
int atoi = 1, k = 1; // atoi记录符号,k记录遍历起点
if(arr[0] == '-') {
atoi = -1;
} else if(arr[0] != '+') { // 注意这里 这个判断可以确定起点
k = 0;
}
long res = 0; // 防止溢出
for(int i = k; i < n; i++) {
if(arr[i] < '0' || arr[i] > '9') break;
res = res * 10 + (arr[i] - '0');
// 是>不是>=
if(res > Integer.MAX_VALUE) return atoi == -1 ? Integer.MIN_VALUE : Integer.MAX_VALUE;
}
return (int)(atoi*res);
}
}