Количество строк с частотой каждого символа не более K
Дан массив arr[] , содержащий N строк и целое число K , задача состоит в том, чтобы найти количество строк с частотой каждого символа не более K
Примеры:
Input: arr[] = { “abab”, “derdee”, “erre” }, K = 2
Output: 2
Explanation: Strings with character frequency at most 2 are “abab”, “erre”. Hence count is 2Input: arr[] = {“ag”, “ka”, “nanana”}, K = 3
Output: 1
Подход: Идея состоит в том, чтобы пройтись по массиву строк и для каждой строки создать частотную карту символов. Везде, где какой-либо символ имеет частоту больше, чем K , пропустить текущую строку. В противном случае, если ни один символ не имеет частоты больше, чем K , увеличьте количество ответов . Выведите количество, сохраненное в ответе , когда все строки пройдены. Выполните следующие шаги, чтобы решить проблему:
- Определите функцию isDuogram(string s, int K) и выполните следующие задачи:
- Инициализируйте вектор freq[26] со значениями 0.
- Пройдитесь по строке s , используя переменную c , и выполните следующие задачи:
- Увеличьте количество частот на 1.
- Итерация в диапазоне [0. 26) с помощью переменной i и выполнить следующие задачи:
- Если freq[i] больше K , верните false.
- После выполнения вышеуказанных шагов верните true в качестве ответа.
- Инициализируйте переменную ans как 0 , чтобы сохранить ответ.
- Пройдитесь по массиву arr[] с помощью переменной x и выполните следующие задачи:
- Вызовите функцию isDuogram(x, K) и, если функция возвращает значение true , увеличьте количество ответов на 1.
- После выполнения вышеуказанных шагов выведите значение ans в качестве ответа.
Ниже приведена реализация вышеуказанного подхода:
Временная сложность: O(N*M), где N — размер массива, а M — размер самой длинной строки.
Вспомогательное пространство: O(1)