Given an array of strings arr[] and an integer M, the task is to count the strings whose count of distinct characters is less than M.
Examples:
Input: arr[] = {“ADAM”, “JOHNSON”, “COOL”}, M = 3
Output: 2
Explanation:
There are two such strings whose count of distinct characters is less than M.
Count of Distinct(“ADAM”) = 3
Count of Distinct(“COOL”) = 3Input: arr[] = {“HERBIVORES”, “AEROPLANE”, “GEEKSFORGEEKS”}, M = 7
Output: 2
Explanation:
There are two such strings whose count of distinct characters is less than M.
Count of Distinct(“AEROPLANE”) = 7
Count of Distinct(“GEEKSFORGEEKS”) = 7
Approach:The idea is to iterate over all the strings and find the distinct characters of the string, If the count of the distinct characters in the string is less than or equal to the given value of the M then increment the count by 1.
Below is the implementation of the above approach:
// Java implementation to count // the number of strings in the // array whose distinct characters // is less than or equal to M import java.util.*;
class GFG{
// Function to count the strings // whose distinct characters // count is less than M public static void distinct(String[] S, int M)
{ int count = 0 ;
// Loop to iterate over all
// the strings of the array
for ( int i = 0 ; i < S.length; i++)
{
// Distinct characters in the
// String with the help of set
Set<Character> set = new HashSet<>();
for ( int j = 0 ; j < S[i].length(); j++)
{
if (!set.contains(S[i].charAt(j)))
set.add(S[i].charAt(j));
}
int c = set.size();
// Checking if its less
// than or equal to M
if (c <= M)
count += 1 ;
}
System.out.println(count);
} // Driver Code public static void main(String[] args)
{ String S[] = { "HERBIVORES" , "AEROPLANE" ,
"GEEKSFORGEEKS" };
int M = 7 ;
distinct(S, M);
} } // This code is contributed by jrishabh99 
# Python3 implementation to count # the number of strings in the # array whose distinct characters # is less than or equal to M # Function to count the strings # whose distinct characters # count is less than M def distinct(S, M):
count = 0
# Loop to iterate over all
# the strings of the array
for i in range ( len (S)):
# Distinct characters in the
# String with the help of set
c = len ( set ([d for d in S[i]]))
# Checking if its less
# than or equal to M
if (c < = M):
count + = 1
print (count)
# Driver Code if __name__ = = '__main__' :
S = [ "HERBIVORES" , "AEROPLANE" ,
"GEEKSFORGEEKS" ]
M = 7
distinct(S, M)

2
Performance Analysis:
 Time Complexity: O(N * M), where M is the maximum length of string.
 Auxiliary Space: O(1)
Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the DSA Self Paced Course at a studentfriendly price and become industry ready.
Recommended Posts:
 Sort an array of strings based on count of distinct characters
 Count of Distinct strings possible by inserting K characters in the original string
 Count ways to partition a string such that both parts have equal distinct characters
 Find the number of strings formed using distinct characters of a given string
 Count number of substrings with exactly k distinct characters
 String Range Queries to count number of distinct characters with updates
 Count the Number of matching characters in a pair of strings
 Count of ungrouped characters after dividing a string into K groups of distinct characters
 Count number of binary strings such that there is no substring of length greater than or equal to 3 with all 1's
 Longest subarray with equal number of alphabets and numeric characters
 Replace minimal number of characters to make all characters pair wise distinct
 Count of binary strings of length N having equal count of 0's and 1's and count of 1's ≥ count of 0's in each prefix substring
 Count number of distinct pairs whose sum exists in the given array
 Count of substrings having all distinct characters
 Minimum characters to be deleted from the end to make given two strings equal
 Count distinct substrings that contain some characters at most k times
 Count of substrings of length K with exactly K distinct characters
 Minimum characters to be deleted from the beginning of two strings to make them equal
 Check whether two strings can be made equal by copying their characters with the adjacent ones
 Count of distinct characters in a substring by given range for Q queries
If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.
Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.
Improved By : jrishabh99