101 Logo
onenoughtone

Problem Statement

Character Frequency Sorter

You're developing a text analysis tool that needs to reorganize characters in a string based on how frequently they appear.

Given a string s, sort it in decreasing order based on the frequency of the characters. The frequency of a character is the number of times it appears in the string.

Return the sorted string. If there are multiple answers, return any of them.

Note that uppercase and lowercase letters are considered different characters.

Examples

Example 1:

Input: s = "tree"
Output: "eert"
Explanation: 'e' appears twice while 'r' and 't' both appear once. So 'e' must appear before both 'r' and 't'. Therefore "eert" is the answer. Note that "eetr" is also a valid answer.

Example 2:

Input: s = "cccaaa"
Output: "cccaaa"
Explanation: Both 'c' and 'a' appear three times, so both "cccaaa" and "aaaccc" are valid answers. Note that "cacaca" is incorrect, as the same characters must be together.

Example 3:

Input: s = "Aabb"
Output: "bbAa"
Explanation: "bbaA" is also a valid answer, but "Aabb" is incorrect. Note that 'A' and 'a' are treated as two different characters.

Constraints

  • 1 <= s.length <= 5 * 10^5
  • s consists of uppercase and lowercase English letters and digits

Problem Breakdown

To solve this problem, we need to:

  1. We need to count the frequency of each character in the string
  2. Characters with higher frequencies should appear before characters with lower frequencies
  3. Characters with the same frequency can appear in any order
  4. The same characters must be grouped together in the result
  5. A hash map or frequency counter is useful for tracking character frequencies
  6. Sorting characters by their frequencies is the key operation
ProblemSolutionCode
101 Logo
onenoughtone