class Solution {
public:
int myAtoi(string str) {
int n = str.size();
int plus = 1;
for(int i = 0; i < str.size(); i++){
if(isdigit(str[i])) break;
if(str[i] == '-'){
plus = -1;
str[i] = '0';
break;
}
if(str[i] == '+'){
str[i] = '0';
break;
}
}
long long ans = 0;
long long max = INT_MAX;
max += 5;
int flag = 1;
for(int i = 0; i < str.size(); i++){
if(str[i] == ' ' && flag) continue;
if(isdigit(str[i])) {ans = ans*10 + (str[i]-'0'); flag = 0;}
if(!isdigit(str[i])) break;
if(ans > max) break;
}
ans *= plus;
if(ans > INT_MAX) return INT_MAX;
if(ans < INT_MIN) return INT_MIN;
return (int)ans;
}
};