Magicsheet logo

Minimum Number of Keypresses

Medium
59.5%
Updated 6/1/2025

Minimum Number of Keypresses

1. What is this problem about?

The Minimum Number of Keypresses interview question asks you to optimize a custom keypad layout. Imagine a phone with 9 buttons. Each button can hold multiple letters. The first letter assigned to a button takes 1 press, the second takes 2, and the third takes 3. Given a string, you need to assign all 26 lowercase English letters to these 9 buttons in a way that minimizes the total number of keypresses needed to type the string.

2. Why is this asked in interviews?

This is a quintessential Greedy optimization problem often seen in Snap and Amazon interviews. It tests whether a candidate can identify that the most frequently occurring characters should be given the "cheapest" positions (1st position on a button). It evaluates your ability to use frequency maps, sorting, and cost calculation in a real-world-style scenario.

3. Algorithmic pattern used

This problem follows the Greedy interview pattern based on Frequency Sorting.

  1. Counting: First, count the frequency of every letter in the input string.
  2. Sorting: Sort these frequencies in descending order.
  3. Assignment:
    • The first 9 letters (the most frequent) are assigned to the 1st position on each of the 9 buttons (Cost = 1).
    • The next 9 letters are assigned to the 2nd position (Cost = 2).
    • The remaining 8 letters are assigned to the 3rd position (Cost = 3).
  4. Summation: Multiply each frequency by its assigned cost and sum them up.

4. Example explanation

String: "aaaaabbbbcccd"

  1. Frequencies: a:5, b:4, c:3, d:1.
  2. Sorted: [5, 4, 3, 1].
  3. Assignment:
    • 'a' is 1st on Button 1: 5×1=55 \times 1 = 5 presses.
    • 'b' is 1st on Button 2: 4×1=44 \times 1 = 4 presses.
    • 'c' is 1st on Button 3: 3×1=33 \times 1 = 3 presses.
    • 'd' is 1st on Button 4: 1×1=11 \times 1 = 1 press. Total = 13. If we had 10 letters all with frequency 5, the 10th one would be 2nd on Button 1, costing 5×2=105 \times 2 = 10.

5. Common mistakes candidates make

  • Not Sorting: Attempting to assign letters in alphabetical order rather than by frequency.
  • Miscounting Buttons: Forgetting that there are only 9 buttons available, meaning only 9 letters can have a cost of 1.
  • Ignoring Unused Letters: While you only care about the letters in the string, the algorithm must logically account for the fact that all 26 letters eventually need a spot, though letters with 0 frequency don't add to the total cost.

6. Interview preparation tip

Always look for the "bottleneck resource" in greedy problems. Here, the resource is the 9 "first-tier" slots. Once you identify that these slots are the most valuable, the strategy of giving them to the most frequent characters becomes clear. This is a core Hash Table and Sorting pattern.

Similar Questions