原题地址(中等)
和第7题差不多
代码
class Solution {
public:
int myAtoi(string s) {
if(s.size() == 0) return 0;
int i = 0, begin, end, flag = 1;
while(s[i] == ' ') i++; // 去空白符
if(s[i] == '+' || s[i] == '-' || isdigit(s[i])){ //记下数字的正负
if(s[i] == '-') flag = -1;
if(!isdigit(s[i])) i++;
}
else return 0;
if(isdigit(s[i])){ // 开始存数
int ans = 0;
while(isdigit(s[i])){
if(ans < INT_MIN / 10 || (ans == INT_MIN/10 && s[i] > '8'))
return INT_MIN;
else if( ans > INT_MAX/10 || (ans == INT_MAX/10 && s[i]>'7') )
return INT_MAX;
else
ans = ans*10 + flag*(s[i]-'0');
i++;
}
return ans;
}
return 0;
}
};