int myAtoi(string str) {
int sign=1;
if(str.empty()){
return 0;
}
int i=0;
int ans=0;
int flag=1;
while(str[i]==' '){
i++;
}
while(i<str.length()){ //空格开始的第一个有效字符
if(flag&&(str[i]=='+'||str[i]=='-')){ //空格开始第一个字符可能是 字母 数字 符号
sign=str[i]=='+'?1:-1;
flag=0;
i++;
}else if(!isdigit(str[i])){//除第一个字符不是数字以外 其他不是数字就不对
break;
}else{ //该字符是数字
flag=0;
int t = str[i]-'0';
if((ans>214748364||(ans>=214748364&&t>7))){
ans=sign>0?2147483647:-2147483648;
return ans;
}
ans=ans*10+t;
i++;
}
}
ans*=sign;
return ans;
}
leetcode刷题 字符串转换整数 c++
最新推荐文章于 2022-07-11 14:57:14 发布