You are given a string s, and your task is to find the maximum length x of a special substring that appears at least three times in s.
A special substring is defined as a substring containing only one unique character (e.g., "aaa", "bbbb").
If no such substring exists, return -1.
The problem exhibits a monotonic property:
x exists at least three times, then all substrings of length < x are also valid.x is invalid, all x > x are also invalid.Using binary search, we efficiently search for the largest possible x:
l = 1 (minimum substring length) and r = n (length of the string s).x is possible.To validate if a given x is valid:
x to traverse the string.true if any substring occurs at least three times.x.l is valid after the search, return l.-1.Time Complexity:
O(log n) iterations for a string of length n.x: O(n) using sliding window.O(n log n).Space Complexity:
O(n) for the hashmap used during validation.Input:
s = "aaabbbaaa"
Output:
3
Explanation:
"aaa" occurs 3 times in the string.Input:
s = "abc"
Output:
-1
Explanation:
Input:
s = "aaaaaa"
Output:
6
Explanation:
"aaaaaa" is the entire string and appears 3 times (as a whole).Input:
s = "abbbbbbbc"
Output:
5
Explanation:
"bbbbb" appears at least 3 times in the string.Input:
s = "aabbcc"
Output:
-1
Explanation:
Single Character String: Input:
s = "a"
Output:
-1
Explanation: A single character cannot occur 3 times as a substring.
String with No Repeats: Input:
s = "abcdef"
Output:
-1
Explanation: No character repeats consecutively.
Already Valid Entire String: Input:
s = "ccc"
Output:
3
Explanation: The entire string forms a valid substring of length 3, occurring exactly 3 times.
Loading component...
Loading component...