多考虑一些细节即可
class Solution {
public int myAtoi(String str) {
long ans = 0,MAX_INT = (long)Integer.MAX_VALUE + 1;
boolean flag = false;
int st = 0;
while(st < str.length() && str.charAt(st) == ' ') {
st++;
}
if(st < str.length() && str.charAt(st) == '+')
st++;
else {
if(st < str.length() && str.charAt(st) == '-') {
st++;
flag = true;
}
}
for(int i = st;i < str.length();i++) {
if(str.charAt(i) <= '9' && str.charAt(i) >= '0') {
ans = ans * 10 + str.charAt(i) - '0';
if(ans > MAX_INT)
ans = MAX_INT;
}
else
break;
}
if(flag)
ans = -ans;
if(ans > Integer.MAX_VALUE)
ans = Integer.MAX_VALUE;
if(ans < Integer.MIN_VALUE)
ans = Integer.MIN_VALUE;
return (int)ans;
}
}