3692. Majority Frequency Characters
Description
You are given a string s
consisting of lowercase English letters.
The frequency group for a value k
is the set of characters that appear exactly k
times in s.
The majority frequency group is the frequency group that contains the largest number of distinct characters.
Return a string containing all characters in the majority frequency group, in any order. If two or more frequency groups tie for that largest size, pick the group whose frequency k
is larger.
Example 1:
Input: s = "aaabbbccdddde"
Output: "ab"
Explanation:
Frequency (k) | Distinct characters in group | Group size | Majority? |
---|---|---|---|
4 | {d} | 1 | No |
3 | {a, b} | 2 | Yes |
2 | {c} | 1 | No |
1 | {e} | 1 | No |
Both characters 'a'
and 'b'
share the same frequency 3, they are in the majority frequency group. "ba"
is also a valid answer.
Example 2:
Input: s = "abcd"
Output: "abcd"
Explanation:
Frequency (k) | Distinct characters in group | Group size | Majority? |
---|---|---|---|
1 | {a, b, c, d} | 4 | Yes |
All characters share the same frequency 1, they are all in the majority frequency group.
Example 3:
Input: s = "pfpfgi"
Output: "fp"
Explanation:
Frequency (k) | Distinct characters in group | Group size | Majority? |
---|---|---|---|
2 | {p, f} | 2 | Yes |
1 | {g, i} | 2 | No (tied size, lower frequency) |
Both characters 'p'
and 'f'
share the same frequency 2, they are in the majority frequency group. There is a tie in group size with frequency 1, but we pick the higher frequency: 2.
Constraints:
1 <= s.length <= 100
s
consists only of lowercase English letters.
Solutions
Solution: Hash Table
We first use an array or hash table \(\textit{cnt}\) to count the frequency of each character in the string. Then, we use another hash table \(\textit{f}\) to group characters with the same frequency \(k\) into the same list, i.e., \(\textit{f}[k]\) stores all characters with frequency \(k\).
Next, we iterate through the hash table \(\textit{f}\) to find the frequency group with the maximum group size. If multiple frequency groups have the same maximum size, we choose the one with the larger frequency \(k\). Finally, we concatenate all characters in that frequency group into a string and return it.
The time complexity is \(O(n)\) and the space complexity is \(O(n)\), where \(n\) is the length of string \(\textit{s}\).
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
|