Integer:⚠️ overflow!
public int myAtoi(String str) {
int ans = 0;
str = str.replaceAll("^\\s*","");
if(str.length()==0) return ans;
int sign = 1;
int i = 0;
if(i < str.length()&&str.charAt(i) == '-'){
sign = -1;
i++;
}else if(i == 0 &&str.charAt(i) == '+'){
i++;
}
for(; i < str.length(); i++){
if(!Character.isDigit(str.charAt(i))) //要先check是否合法
return sign*ans;
if(ans
>
(Integer.MAX_VALUE - str.charAt(i)+'0')/10){ //不是大于等于
return sign == 1 ? Integer.MAX_VALUE :Integer.MIN_VALUE;
}
ans = ans * 10 + str.charAt(i)-'0';
}
return sign*ans;
}
没有评论:
发表评论