class Solution {
public:
int atoi(const char *str) {
if(str==NULL)
return 0;
while(*str==' ')str++;
int sign=1;
if(*str=='-')
sign=-1,str++;
else if(*str=='+')
sign=1,str++;
int result=0;
while(isdigit(*str))
{
if(result==0)
result=(*str-'0');
else
{
if(INT_MAX/result>=10)
result=result*10+(*str-'0');
else
result=-1;
}
if(result<0&&sign==-1) return INT_MIN ;
if(result<0&&sign==1) return INT_MAX;
str++;
}
return sign*result;
}
};