class Solution {
public:
int invalid = 1;
int StrToInt(string str) {
bool minus = false;
int index = 0;
long long num = 0;
if(str.size() != 0 && str[index] != '\0'){
if(str[index] == '+')
index++;
else if(str[index] == '-'){
minus = true;
index++;
}
if(str[index] != '\0'){
num = StrtoInt_Core(str,minus,index);
}
}
return int(num);
}
long long StrtoInt_Core(string str,bool minus,int index){
int length = str.size();
long long num = 0;
int flag = minus ? -1 : 1;
for(;index < length;index++){
if(str[index] >= '0' && str[index] <= '9'){
num = num * 10 + flag * (str[index] - '0');
int xxx = 0x80000000;
if(num < xxx || num > 0x7FFFFFFF){
num = 0;
break;
}
}
else{
num = 0;
break;
}
}
if(str[index] == '\0')
invalid = 0;
return num;
}
};
本文章为转载内容,我们尊重原作者对文章享有的著作权。如有内容错误或侵权问题,欢迎原作者联系我们进行内容更正或删除文章。