LeetcodeMay 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);
};
 

Comments