Description:
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.
Solution:
The only problem in this problem is different types of inputs. Just figure it out, problem then gets solved.
public class Solution {
public int myAtoi(String str) {
for (int i = 0; i < str.length(); i++)
if (str.charAt(i) != ' ') {
str = str.substring(i);
break;
}
System.out.println(str);
if (str.equals(""))
return 0;
int coefficient = 1;
int tot = 0;
if (str.charAt(0) == '-') {
coefficient = -1;
tot = 1;
} else if (str.charAt(0) == '+') {
tot = 1;
}
long ans = 0;
boolean flag = false;
for (int i = tot; i < str.length(); i++) {
char ch = str.charAt(i);
if (ch >= '0' && ch <= '9') {
ans = ans * 10 + ch - '0';
flag = true;
if (ans > Integer.MAX_VALUE) {
if (coefficient > 0)
return Integer.MAX_VALUE;
else
return Integer.MIN_VALUE;
}
} else {
if (!flag)
return 0;
break;
}
}
return (int) (ans * coefficient);
}
public static void main(String[] args) {
Solution solution = new Solution();
System.out.println(solution.myAtoi("9223372036854775809"));
}
}