Faaez Razeen

Minimum Number of Keypresses

  • 1 min read
  • String
  • LC-Medium

3 years ago

Solution

TimeSpaceExplanation
O()O()
def minimumKeypresses(self, s: str) -> int: keys = [0] * 9 i = 0 key_presses = 0 most_frequent = {k: v for k, v in sorted(Counter(s).items(), reverse=True, key=lambda x:x[1])} mapped = defaultdict(lambda: 0) for ch, freq in most_frequent.items(): if ch not in mapped: keys[i] = min(keys[i] + 1, 3) mapped[ch] = keys[i] i = (i + 1) % 9 key_presses += (mapped[ch] * freq) return key_presses