同样是我最喜欢最简单的遍历。。
int myAtoi(string str) {
int i = 0;
while (str[i] == ' ')++i;
if ((str[i] < 48 || str[i]>57)&&str[i]!='-'&&str[i]!='+')return 0;
bool flag =true;
if (str[i] == '-') {
flag = false;
++i;
}
else if(str[i]=='+'){
++i;
}
long long ans = 0;
int imax = (1 << 31) - 1;
int imin = 0 - (1 << 31);
while (str[i] >= 48 && str[i] <= 57) {
long long temp = (long long)str[i] - 48;
ans = ans * 10 + temp;
long long tt = ans;
if (!flag)tt = 0 - tt;
if (tt < imin)return -2147483648;
else if (tt > imax)return 2147483647;
++i;
}
if (!flag)ans = 0 - ans;
return ans;
}