class Solution {
public int myAtoi(String str) {
char[] c1 = str.toCharArray();
int i = 0;
int sum = 0;
boolean flag = true;
if (c1.length == 0)return 0;
while(c1[i] == ' ') {
if (i == c1.length-1) {
return 0;
}
i++;
}
for(;i < c1.length;i++) {
if(c1[i] == '-') {
if (i > 0 && isnum(c1[i-1])) return flag?sum:-sum;
if (i < c1.length-1 && isnum(c1[i+1])) {
flag = false;
}else {
return 0;
}
continue;
}
if(c1[i] == '+') {
if (i > 0 && isnum(c1[i-1])) return flag?sum:-sum;
if (i == c1.length-1 || !isnum(c1[i+1])) {
return 0;
}
continue;
}
if (isnum(c1[i])) {
if(flag && (sum > Integer.MAX_VALUE/10 || (sum == Integer.MAX_VALUE/10 && c1[i] > '7'))) {
return Integer.MAX_VALUE;
}
if (!flag && (sum > Integer.MAX_VALUE/10 || (sum == Integer.MAX_VALUE/10 && c1[i] > '8'))) {
return Integer.MIN_VALUE;
}
sum = sum*10 + c1[i]-'0';
}
else {
return flag?sum:-sum;
}
}
return flag?sum:-sum;
}
boolean isnum(char c) {
if(c >= '0' && c <= '9') {
return true;
}else {
return false;
}
}
}
leetcode 8 字符串转换整数 (atoi)
最新推荐文章于 2024-09-29 19:46:50 发布