LeetCode

LeetCode

  • Problems
  • GitHub

›Problems

Problems

  • Two Sum
  • Add Two Numbers
  • Longest Substring Without Repeating Characters
  • Reverse Integer
  • String to Integer (atoi)
  • Palindrome Number
  • Longest Common Prefix
  • 3Sum
  • Remove Nth Node From End of List
  • Valid Parentheses
  • Merge Two Sorted Lists
  • Generate Parentheses
  • Merge k Sorted Lists
  • Remove Element
  • Next Permutation
  • Search in Rotated Sorted Array
  • Valid Sudoku
  • Group Anagrams
  • Maximum Subarray
  • Search a 2D Matrix
  • Binary Tree Level Order Traversal
  • Maximum Depth of Binary Tree
  • Balanced Binary Tree
  • Best Time to Buy and Sell Stock
  • Binary Tree Maximum Path Sum
  • Valid Palindrome
  • Word Ladder
  • Longest Consecutive Sequence
  • Palindrome Partitioning II
  • Linked List Cycle
  • Find Minimum in Rotated Sorted Array
  • Two Sum II - Input Array Is Sorted
  • Number of Islands
  • Reverse Linked List
  • Course Schedule II
  • Kth Largest Element in an Array
  • Contains Duplicate
  • Count Complete Tree Nodes
  • Invert Binary Tree
  • Valid Anagram
  • Find the Duplicate Number
  • Count of Smaller Numbers After Self
  • Longest Increasing Path in a Matrix
  • Top K Frequent Elements
  • Decode String
  • Longest Repeating Character Replacement
  • Max Consecutive Ones
  • Cracking the Safe
  • Binary Search
  • Design Circular Queue
  • Robot Room Cleaner
  • Peak Index in a Mountain Array
  • Fruit Into Baskets
  • Sort Array By Parity II
  • Unique Email Addresses
  • K Closest Points to Origin
  • Squares of a Sorted Array
  • Remove Vowels from a String
  • Optimize Water Distribution in a Village
  • Duplicate Zeros
  • Defanging an IP Address
  • Find Numbers with Even Number of Digits
  • Shuffle the Array
  • Running Sum of 1d Array
  • Number of Good Pairs
  • Richest Customer Wealth
  • Build Array from Permutation
  • Concatenation of Array
  • Final Value of Variable After Performing Operations
  • Maximum Number of Words Found in Sentences
  • Add Two Integers
  • Intersection of Two Arrays
  • Missing Number
  • Jewels and Stones
  • Find a Corresponding Node of a Binary Tree in a Clone of That Tree
  • Kids With the Greatest Number of Candies
  • Design Parking System
  • Minimum Sum of Four Digit Number After Splitting Digits
  • Root Equals Sum of Children
  • Plus One
  • Validate Binary Search Tree
  • Find Pivot Index
  • Largest Number At Least Twice of Others
  • Range Sum of BST
  • Subtract the Product and Sum of Digits of an Integer
  • How Many Numbers Are Smaller Than the Current Number

String to Integer (atoi)

Description

Implement the myAtoi(string s) function, which converts a string to a 32-bit signed integer (similar to C/C++'s atoi function).

The algorithm for myAtoi(string s) is as follows:

  1. Read in and ignore any leading whitespace.
  2. 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.
  3. 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.
  4. 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).
  5. 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.
  6. 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.

 

Example 1:

Input: s = "42"
Output: 42
Explanation: The underlined characters are what is read in, the caret is the current reader position.
Step 1: "42" (no characters read because there is no leading whitespace)
         ^
Step 2: "42" (no characters read because there is neither a '-' nor '+')
         ^
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.

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.

Example 3:

Input: s = "4193 with words"
Output: 4193
Explanation:
Step 1: "4193 with words" (no characters read because there is no leading whitespace)
         ^
Step 2: "4193 with words" (no characters read because there is neither a '-' nor '+')
         ^
Step 3: "4193 with words" ("4193" is read in; reading stops because the next character is a non-digit)
             ^
The parsed integer is 4193.
Since 4193 is in the range [-231, 231 - 1], the final result is 4193.

 

Constraints:

  • 0 <= s.length <= 200
  • s consists of English letters (lower-case and upper-case), digits (0-9), ' ', '+', '-', and '.'.

Solution(javascript)

/**
 * @param {string} s
 * @return {number}
 */
var myAtoi = function(s) {
    let num = parseInt(s)
    
    const negMax = -(2**31);
    const posMax = -negMax - 1;
    
    if (num >= posMax){
        return posMax
    }
    if (num <= negMax){
        return negMax
    }
    if (isNaN(num)){
        return 0
    }
    return num 
};
← Reverse IntegerPalindrome Number →
  • Description
  • Solution(javascript)
Powered By LeetCode Site Generator