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(i last 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