184k views
5 votes
You are given an array S made of N strings and an integer K. Choose at most K letters from the alphabet that will allow you to build as many strings from array S as possible. Any of the chosen letters can be used multiple times when building the strings. What is the maximum number of strings from S that can be built? Write a function: int solution (vector

1 Answer

5 votes

Final answer:

To solve this problem, count the frequency of each letter in the strings and choose the K letters with the highest frequency. Then, for each string, check if all the required letters are present in the chosen set.

Step-by-step explanation:

In this problem, you are given an array of strings and an integer, and your task is to find the maximum number of strings that can be built using at most K letters from the alphabet. To solve this problem, you can count the frequency of each letter in all the strings and choose the K letters with the highest frequency. Then, for each string, check if all the required letters are present in the chosen set. If yes, count it as a valid string that can be built.

Here is an example:

  • We have the array S = {"abc", "def"} and K = 2.
  • Count the frequencies for all the letters: a: 1, b: 1, c: 1, d: 1, e: 1, f: 1.
  • Choose the 2 letters with the highest frequency: a and b.
  • Check if each string can be built using only the chosen letters:
  • "abc": All the required letters (a, b, and c) are present in the chosen set.
  • "def": None of the required letters (a, b, and c) are present in the chosen set.
  • The maximum number of strings that can be built is 1.
User Peter Salomonsen
by
7.4k points