String to Integer (atoi) Leetcode Solution
String to Integer (atoi) :
Implement the myAtoi(string s) function, which converts a string to a 32-bit signed integer (similar to C/C++’s atoi function).
Example 1 :
Input: s = "42"
Output: 42
Explanation:The underlined characters are what is read in, the caret is the current reader position.
The algorithm for myAtoi(string s)
is as follows:
- Read in and ignore any leading whitespace.
- Check if the next character (if not already at the end of the string) is ‘-‘ or ‘+’. Read this character in if it is either. This determines if the final result is negative or positive respectively. Assume the result is positive if neither is present.
- Read in next the characters until the next non-digit character or the end of the input is reached. The rest of the string is ignored.
- Convert these digits into an integer (i.e. “123” -> 123, “0032” -> 32). If no digits were read, then the integer is 0. Change the sign as necessary (from step 2).
- If the integer is out of the 32-bit signed integer range [-231, 231 – 1], then clamp the integer so that it remains in the range. Specifically, integers less than -231 should be clamped to -231, and integers greater than 231 – 1 should be clamped to 231 – 1.
- Return the integer as the final result.
Note:
- Only the space character ‘ ‘ is considered a whitespace character.
- Do not ignore any characters other than the leading whitespace or the rest of the string after the digits.
String to Integer (atoi) Leetcode Solution:
Constraints :
- 0 <= s.length <= 200
- s consists of English letters (lower-case and upper-case), digits (0-9), ‘ ‘, ‘+’, ‘-‘, and ‘.’.
Example 2 :
- Input: s = ” -42″
- Output: -42
- Explanation:
Step 1: ” -42″ (leading whitespace is read and ignored)
^
Step 2: ” -42″ (‘-‘ is read, so the result should be negative)
^
Step 3: ” -42″ (“42” is read in)
^
The parsed integer is -42.
Since -42 is in the range [-231, 231 – 1], the final result is -42.
Approach for Longest Palindromic Substring LeetCode Solution :
- Check if string is empty or not.
- Check for spaces and then remove them.
- Check for “-“, “+”(store “-“).
- If again encounter space or alphabet then exit the loop.
- Store the integer.
- Check if the sotred value is less than INT_MIN or greater than INT_MAX.
- Return the product of sign and the stored value.
Prime Course Trailer
Related Banners
Get PrepInsta Prime & get Access to all 200+ courses offered by PrepInsta in One Subscription
Code for String to integer (atoi) LeetCode Solution :
C++
Java
Python
C++
class Solution { public : int myAtoi(string s) { if(s.length()==0) return 0; int i=0; while(ilast of string int sign = +1; long ans = 0; if(s[0] == '-') sign = -1; int MAX = INT_MAX, MIN = INT_MIN; i = (s[0] == '+' || s[0] == '-') ? 1 : 0; while(i < s.length()) { if(s[0] == ' ' || !isdigit(s[i])) break; ans = ans * 10 + s[i]-'0'; if(sign == -1 && -1*ans < MIN) return MIN; if(sign == 1 && ans > MAX) return MAX; i++; } return (int)(sign*ans); } };
Java
public class Solution { public int myAtoi(String s) { if (s.length() == 0) return 0; int i = 0; while (i < s.length() && s.charAt(i) == ' ') { i++; } s = s.substring(i); // i ---> last of string int sign = 1; long ans = 0; if (s.charAt(0) == '-') sign = -1; int MAX = Integer.MAX_VALUE; int MIN = Integer.MIN_VALUE; i = (s.charAt(0) == '+' || s.charAt(0) == '-') ? 1 : 0; while (i < s.length()) { if (s.charAt(0) == ' ' || !Character.isDigit(s.charAt(i))) break; ans = ans * 10 + (s.charAt(i) - '0'); if (sign == -1 && -1 * ans < MIN) return MIN; if (sign == 1 && ans > MAX) return MAX; i++; } return (int) (sign * ans); } }
Python
class Solution: def myAtoi(self, s: str) -> int: if len(s) == 0: return 0 i = 0 while i < len(s) and s[i] == ' ': i += 1 s = s[i:] # i ---> last of string sign = 1 ans = 0 if s and s[0] == '-': sign = -1 MAX = 2**31 - 1 MIN = -2**31 i = 1 if s and (s[0] == '+' or s[0] == '-') else 0 while i < len(s): if s[i] == ' ' or not s[i].isdigit(): break ans = ans * 10 + int(s[i]) if sign == -1 and -1 * ans < MIN: return MIN if sign == 1 and ans > MAX: return MAX i += 1 return sign * ans
Get over 200+ course One Subscription
Courses like AI/ML, Cloud Computing, Ethical Hacking, C, C++, Java, Python, DSA (All Languages), Competitive Coding (All Languages), TCS, Infosys, Wipro, Amazon, DBMS, SQL and others
Login/Signup to comment