Magicsheet logo

Find Longest Special Substring That Occurs Thrice I

Medium
12.5%
Updated 8/1/2025

Find Longest Special Substring That Occurs Thrice I

What is this problem about?

The Find Longest Special Substring That Occurs Thrice I coding problem asks you to find the length of the longest "special" substring that appears at least three times in a given string. A substring is considered special if it consists of only one unique character (e.g., "aaaa"). If no such substring exists three times, return -1.

Why is this asked in interviews?

Companies like Microsoft and Bloomberg use this to test basic string manipulation and Hash Table interview patterns. It evaluates whether you can identify contiguous blocks of characters and count their frequencies. Since this is "Version I," the constraints are usually small, allowing for a brute-force approach while still checking for clear logic and attention to detail.

Algorithmic pattern used

This problem is solved using Grouping and Counting.

  1. Identify all contiguous groups of identical characters (e.g., "aaabb" o o "aaa", "bb").
  2. For each group of length LL of character CC:
    • A substring of length LL occurs 1 time.
    • A substring of length L1L-1 occurs 2 times.
    • A substring of length L2L-2 occurs 3 times.
  3. Use a Hash Map to store the frequencies of every possible special substring.
  4. Iterate through the map and find the maximum length where the frequency is 3\ge 3.

Example explanation

String: "aaaa"

  • Length 4 ("aaaa") occurs 1 time.
  • Length 3 ("aaa") occurs 2 times (at index 0 and 1).
  • Length 2 ("aa") occurs 3 times (at index 0, 1, and 2). Result: 2.

String: "abcdef"

  • Each character occurs only once. No special substring occurs thrice. Result: -1.

Common mistakes candidates make

  • Missing partial overlaps: Not realizing that a block of length 4 contains three blocks of length 2.
  • Inefficient Search: Trying to generate all O(n2)O(n^2) substrings instead of focusing only on "special" (uniform) ones.
  • Tie-breaking: Returning the frequency instead of the length.

Interview preparation tip

Always look for the "uniformity" constraint. If a substring must consist of only one character, you only need to track the character and its consecutive count. This turns a complex string search into a simple frequency map problem.

Similar Questions