class Solution {
public int myAtoi(String str) {
if (str == null || str.length() == 0) return 0;
str = str.trim();
if (str.charAt(0) != '+' && str.charAt(0) != '-' && (str.charAt(0) < '0' || str.charAt(0) > '9')) return 0;
int flag = 1, tracker = 0;
if (str.charAt(tracker) == '+'){
tracker++;
}
else if (str.charAt(tracker) == '-'){
flag = -1;
tracker++;
}
long ans = 0;
while (tracker < str.length()){
char cur = str.charAt(tracker);
if (cur < '0' || cur > '9') break;
int num = cur - '0';
ans = ans * 10 + num;
if (ans * flag > Integer.MAX_VALUE) return Integer.MAX_VALUE * flag;
if (ans * flag < Integer.MIN_VALUE) return Integer.MIN_VALUE * flag;
tracker++;
}
System.out.println("ans: " + ans + " flag: " + flag);
ans = ans * flag;
return (int)ans;
}
}