Back to all solutions

#395 - Longest Substring with At Least K Repeating Characters

Problem Description

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.

Solution

/**
 * @param {string} s
 * @param {number} k
 * @return {number}
 */
var longestSubstring = function(s, k) {
  for (const char of Array.from(new Set(s))) {
    if (s.match(new RegExp(char, 'g')).length < k) {
      return Math.max(...s.split(char).map(str => longestSubstring(str, k)));
    }
  }
  return s.length;
};