实现atoi这个函数,将一个字符串转换为整数。如果没有合法的整数,返回0。如果整数超出了32位整数的范围,返回INT_MAX(2147483647)如果是正整数,或者INT_MIN(-2147483648)如果是负整数。
class Solution {
public:
/**
* @param str: A string
* @return An integer
*/
int atoi(string str) {
// write your code here
int n=str.size();
int sign=1;
int base=0;
int i=0;
while(str[i]==' ') i++;
if(str[i]=='+'||str[i]=='-'){
sign=1-2*(str[i++]=='-');
}
while(str[i]>='0'&&str[i]<='9'){
if(base>INT_MAX/10||base==INT_MAX/10&&str[i]>'7'){
if(sign==1) return INT_MAX;
else return INT_MIN;
}
base=10*base+(str[i++]-'0');
}
return sign*base;
}
};