classSolution{public:intatoi(constchar*str){// Note: The Solution object is instantiated only once and is reused by each test case.
inti;for(i=0;i<strlen(str);i++){if(str[i]!=' ')break;}if(!((str[i]>='0'&&str[i]<='9')||(str[i]=='+')||(str[i]=='-')))return0;intstart=-1;intend=-1;for(;i<strlen(str);i++){if((str[i]>='0'&&str[i]<='9')||(str[i]=='+')||(str[i]=='-')){start=i;break;}}if(start==-1)return0;for(i=start+1;i<strlen(str);i++){if(str[i]<'0'||str[i]>'9'){end=i-1;break;}}if(i==strlen(str)){end=i-1;}intp=1;if(str[start]=='-'||str[start]=='+'){if(str[start]=='-')p=-1;start++;}doubleans=0;intindex=0;for(i=end;i>=start;i--){ans+=(str[i]-'0')*pow(10.0,index++);}ans=ans*p;if(ans>2147483647.0)return2147483647;if(ans<-2147483648.0)return-2147483648;return(int)ans;}};