Skip to main content

Command Palette

Search for a command to run...

Solving Leetcode Interviews in Seconds with AI: Find Longest Special Substring That Occurs Thrice I

Updated
3 min read

Introduction

In this blog post, we will explore how to solve the LeetCode problem "2981" 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

You are given a string s that consists of lowercase English letters. A string is called special if it is made up of only a single character. For example, the string "abc" is not special, whereas the strings "ddd", "zz", and "f" are special. Return the length of the longest special substring of s which occurs at least thrice, or -1 if no special substring occurs at least thrice. A substring is a contiguous non-empty sequence of characters within a string. Example 1: Input: s = "aaaa" Output: 2 Explanation: The longest special substring which occurs thrice is "aa": substrings "aaaa", "aaaa", and "aaaa". It can be shown that the maximum length achievable is 2. Example 2: Input: s = "abcdef" Output: -1 Explanation: There exists no special substring which occurs at least thrice. Hence return -1. Example 3: Input: s = "abcaba" Output: 1 Explanation: The longest special substring which occurs thrice is "a": substrings "abcaba", "abcaba", and "abcaba". It can be shown that the maximum length achievable is 1. Constraints: 3 <= s.length <= 50 s consists of only lowercase English letters.

Explanation

Here's a solution to the problem, incorporating efficiency and clarity:

  • Iterate and Count: Iterate through the string, identifying consecutive sequences of the same character.
  • Check for Thrice Occurrence: For each length of special substring found, check if it occurs at least three times in the input string.
  • Maximize Length: Keep track of the maximum length of special substrings that meet the occurrence criterion.

  • Runtime Complexity: O(n^2), where n is the length of the input string.

  • Storage Complexity: O(1).

Code

    def longest_special_substring(s: str) -> int:
    """
    Finds the length of the longest special substring of s which occurs at least thrice.

    Args:
        s: The input string consisting of lowercase English letters.

    Returns:
        The length of the longest special substring that occurs at least thrice,
        or -1 if no such substring exists.
    """

    max_len = -1
    n = len(s)

    for char_code in range(ord('a'), ord('z') + 1):
        char = chr(char_code)
        for length in range(n, 0, -1):
            substring = char * length
            count = 0
            for i in range(n - length + 1):
                if s[i:i+length] == substring:
                    count += 1

            if count >= 3:
                max_len = length
                return max_len # optimization: return early since length is decreasing

    return max_len

More from this blog

C

Chatmagic blog

2894 posts