Premium Only Content
2981. Find Longest Special Substring That Occurs Thrice I
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.
class Solution {
public:
int maximumLength(string s) {
const int n = s.length();
int ans = -1;
int runningLen = 0;
char prevLetter = '@';
// counts[i][j] := the frequency of ('a' + i) repeating j times
vector<vector<int>> counts(26, vector<int>(n + 1));
for (const char c : s)
if (c == prevLetter) {
++counts[c - 'a'][++runningLen];
} else {
runningLen = 1;
++counts[c - 'a'][runningLen];
prevLetter = c;
}
for (const vector<int>& count : counts)
ans = max(ans, getMaxFreq(count, n));
return ans;
}
private:
// Returns the maximum frequency that occurs more than three times.
int getMaxFreq(const vector<int>& count, int maxFreq) {
int times = 0;
for (int freq = maxFreq; freq >= 1; --freq) {
times += count[freq];
if (times >= 3)
return freq;
}
return -1;
}
};
-
13:18
MTNTOUGH Fitness Lab
19 hours agoProtectors: The Bullfighter | A MTNTOUGH Original
15.9K2 -
37:48
CarlCrusher
13 hours agoGhost Voices and Paranormal Activity at Magic Mesa
13.9K2 -
1:05:44
PMG
12 hours ago $1.96 earned"United Healthcare CEO Shooter Has Been ARRESTED!! Here’s What We Know…"
8.88K1 -
5:56:37
Akademiks
11 hours agoJay Z is getting DESPERATE. Begs Judge to Dismiss CASE EXPEDITIOUSLY!! United Healthcare Ceo / LUIGI
160K28 -
1:00:37
barstoolsports
1 day agoDave Scrambles To Stay Alive | Surviving Barstool S4 Ep. 4
161K6 -
27:30
Stephen Gardner
9 hours ago🔴Democrats Push the UNTHINKABLE! Assassin Luigi Mangione's Shocking Motive REVEALED!
78.1K307 -
1:19:47
Glenn Greenwald
10 hours agoNiall Ferguson V.S. Scott Horton: Did The U.S. Provoke The Ukraine War? | ZeroHedge Debate Special
116K295 -
1:59:36
WeAreChange
12 hours agoIsrael EXPANDS Into Syria! Netanyahu Changing ‘The Face’ Of Middle East
115K57 -
1:17:45
Man in America
14 hours agoSyria’s Collapse Signals an Alarming Fate for the Middle East w/ Martin Armstrong
103K94 -
1:07:00
Adam Does Movies
14 hours ago $11.86 earnedChris Evans Returns For Avengers: Doomsday + Sony Spider-Verse Cancelled + Movie News - LIVE!
53.6K2