Leetcode•May 05, 2026
Longest Substring with At Least K Repeating Characters
Hazrat Ali
Leetcode
Given a string s and an integer k, return the length of the longest substring of s such that the frequency of each character in this substring is greater than or equal to k.
if no such substring exists, return 0.
Example 1:
Input: s = "aaabb", k = 3 Output: 3 Explanation: The longest substring is "aaa", as 'a' is repeated 3 times.
Example 2:
Input: s = "ababbc", k = 2 Output: 5 Explanation: The longest substring is "ababb", as 'a' is repeated 2 times and 'b' is repeated 3 times.
Solution
var longestSubstring = function(s, k) {
function solve(start, end) {
if (end - start < k) return 0;
let freq = new Array(26).fill(0);
for (let i = start; i < end; i++) {
freq[s.charCodeAt(i) - 97]++;
}
for (let i = start; i < end; i++) {
if (freq[s.charCodeAt(i) - 97] < k) {
let left = solve(start, i);
let right = solve(i + 1, end);
return Math.max(left, right);
}
}
return end - start;
}
return solve(0, s.length);
};