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:
public class Solution { public int atoi(String str) { int characterPointer = 0; boolean isNegative = false; long solution = 0; while(characterPointer<str.length() && Character.isWhitespace(str.charAt(characterPointer))) characterPointer++; if (characterPointer==str.length()) return 0; //String that is empty or only white spaces if(str.charAt(characterPointer)=='-') { isNegative = true; characterPointer++; } else if(str.charAt(characterPointer)=='+') { isNegative = false; characterPointer++; } for (; characterPointer<str.length(); characterPointer++) { if(!Character.isDigit(str.charAt(characterPointer))) break; solution *= 10; solution += Character.getNumericValue(str.charAt(characterPointer)); } if(!isNegative && solution> Integer.MAX_VALUE) return Integer.MAX_VALUE; if(isNegative && -1*solution < Integer.MIN_VALUE) return Integer.MIN_VALUE; return isNegative ? (int)(-1*solution) : (int)solution; } }
No comments :
Post a Comment