Overview
Implement myAtoi(s) which converts a string to a 32-bit signed integer:
- Skip leading whitespace
- Read optional
+or-sign - Read digits until a non-digit or end
- Clamp to
[-2^31, 2^31 - 1]
Constraints
0 <= s.length <= 200sconsists of English letters, digits, spaces,+,-, and.
Examples
myAtoi("42"); // => 42
myAtoi(" -42"); // => -42
myAtoi("4193 with words"); // => 4193
myAtoi("words and 987"); // => 0Solution
Reveal solution
function myAtoi(s) {
let i = 0;
while (i < s.length && s[i] === ' ') i++;
let sign = 1;
if (i < s.length && (s[i] === '+' || s[i] === '-')) {
sign = s[i] === '-' ? -1 : 1;
i++;
}
let result = 0;
while (i < s.length && s[i] >= '0' && s[i] <= '9') {
result = result * 10 + (s[i] - '0');
i++;
}
result *= sign;
return Math.max(-(2**31), Math.min(2**31 - 1, result));
}Resources
string-to-integer-atoi.js
String to Integer (atoi)
mediumcodingAlgorithmsStrings
Overview
Implement myAtoi(s) which converts a string to a 32-bit signed integer:
- Skip leading whitespace
- Read optional
+or-sign - Read digits until a non-digit or end
- Clamp to
[-2^31, 2^31 - 1]
Constraints
0 <= s.length <= 200sconsists of English letters, digits, spaces,+,-, and.
Examples
myAtoi("42"); // => 42
myAtoi(" -42"); // => -42
myAtoi("4193 with words"); // => 4193
myAtoi("words and 987"); // => 0Solution
Reveal solution
function myAtoi(s) {
let i = 0;
while (i < s.length && s[i] === ' ') i++;
let sign = 1;
if (i < s.length && (s[i] === '+' || s[i] === '-')) {
sign = s[i] === '-' ? -1 : 1;
i++;
}
let result = 0;
while (i < s.length && s[i] >= '0' && s[i] <= '9') {
result = result * 10 + (s[i] - '0');
i++;
}
result *= sign;
return Math.max(-(2**31), Math.min(2**31 - 1, result));
}Resources
NameTopicDifficulty
103 of 103 problems