Skip to main content

Command Palette

Search for a command to run...

Solving Leetcode Interviews in Seconds with AI: Check if Numbers Are Ascending in a Sentence

Updated
3 min read

Introduction

In this blog post, we will explore how to solve the LeetCode problem "2042" using AI. LeetCode is a popular platform for preparing for coding interviews, and with the help of AI tools like Chatmagic, we can generate solutions quickly and efficiently - helping you pass the interviews and get the job offer without having to study for months.

Problem Statement

A sentence is a list of tokens separated by a single space with no leading or trailing spaces. Every token is either a positive number consisting of digits 0-9 with no leading zeros, or a word consisting of lowercase English letters. For example, "a puppy has 2 eyes 4 legs" is a sentence with seven tokens: "2" and "4" are numbers and the other tokens such as "puppy" are words. Given a string s representing a sentence, you need to check if all the numbers in s are strictly increasing from left to right (i.e., other than the last number, each number is strictly smaller than the number on its right in s). Return true if so, or false otherwise. Example 1: Input: s = "1 box has 3 blue 4 red 6 green and 12 yellow marbles" Output: true Explanation: The numbers in s are: 1, 3, 4, 6, 12. They are strictly increasing from left to right: 1 < 3 < 4 < 6 < 12. Example 2: Input: s = "hello world 5 x 5" Output: false Explanation: The numbers in s are: 5, 5. They are not strictly increasing. Example 3: Input: s = "sunset is at 7 51 pm overnight lows will be in the low 50 and 60 s" Output: false Explanation: The numbers in s are: 7, 51, 50, 60. They are not strictly increasing. Constraints: 3 <= s.length <= 200 s consists of lowercase English letters, spaces, and digits from 0 to 9, inclusive. The number of tokens in s is between 2 and 100, inclusive. The tokens in s are separated by a single space. There are at least two numbers in s. Each number in s is a positive number less than 100, with no leading zeros. s contains no leading or trailing spaces.

Explanation

  • Split the sentence into tokens: Use the split() method to separate the sentence into individual words and numbers.
    • Identify and compare numbers: Iterate through the tokens, and if a token is a number, convert it to an integer and compare it with the previously found number. If the current number is not strictly greater than the previous, return False.
    • Handle the first number case: Initialize the previous number to a very small value (e.g., negative infinity) to ensure the first number is always greater.
  • Runtime Complexity: O(n), where n is the length of the string s.
  • Storage Complexity: O(m), where m is the number of tokens in the string s due to the split operation.

Code

    def areNumbersAscending(s: str) -> bool:
    """
    Checks if all numbers in a sentence are strictly increasing.

    Args:
        s: The sentence string.

    Returns:
        True if the numbers are strictly increasing, False otherwise.
    """
    tokens = s.split()
    prev_num = float('-inf')  # Initialize with negative infinity

    for token in tokens:
        if token.isdigit():
            num = int(token)
            if num <= prev_num:
                return False
            prev_num = num

    return True

More from this blog

C

Chatmagic blog

2894 posts