AcWing 87. 把字符串转换成整数
原题链接
中等
作者:
Eternity_7
,
2021-03-27 19:17:31
,
所有人可见
,
阅读 289
class Solution {
public int strToInt(String str) {
if(str == null || str.length() == 0){
return 0;
}
int i = 0;
char[] chs = str.toCharArray();
int n = chs.length;
// 处理空格
while(i < n && chs[i] == ' '){
i++;
}
int sign = 1;
// 处理正负号
if(chs[i] == '-'){
sign = -1;
i++;
}else if(chs[i] == '+'){
sign = 1;
i++;
}
int num = 0;
// 处理数字部分
while(i < n && Character.isDigit(chs[i])){
int b = sign*(chs[i++]-'0');
if(num > Integer.MAX_VALUE/10 || num == Integer.MAX_VALUE/10 && b > 7){
return Integer.MAX_VALUE;
}
if(num < Integer.MIN_VALUE/10 || num == Integer.MIN_VALUE/10 && b < -8){
return Integer.MIN_VALUE;
}
num = num*10 + b;
}
return num;
}
}