Implement atoi to convert a string to an integer.
Hint: Carefully consider all possible input cases. If you want a challenge, please do not see below and ask yourself what are the possible input cases.
Notes: It is intended for this problem to be specified vaguely (ie, no given input specs). You are responsible to gather all the input requirements up front.
public class Solution {
public int atoi(String str) {
if(str == null) return 0;
str = str.trim();
long value = 0;
boolean isNegative = false;
for(int i = 0; i < str.length(); i++){
if(i == 0 && (str.charAt(i) == '+' || str.charAt(i) == '-')){
if(str.charAt(i) == '-'){
isNegative = true;
}
continue;
}
if(str.charAt(i) > '9' || str.charAt(i) < '0') break;
value = value * 10 + (int)(str.charAt(i) - '0');
}
if(isNegative) value *= -1;
if(value >= Integer.MAX_VALUE) return Integer.MAX_VALUE;
if(value <= Integer.MIN_VALUE) return Integer.MIN_VALUE;
return (int)value;
}
}