Search⌘ K
AI Features

Solution: Map Sum Pairs

Explore how to design a MapSum data structure that supports inserting key-value pairs and computing prefix sums efficiently. Learn to use a trie with cumulative scores and an auxiliary map to handle updates without double counting. Understand insertion and prefix sum operations with time complexity O(L) and O(P) respectively, where L is key length and P is prefix length. This lesson teaches how to apply trie augmentation to solve prefix-based queries effectively.

Statement

Design a data structure that supports the following operations:

  1. Insert a key-value pair:

    1. Each key is a string, and each value is an integer.

    2. If the key already exists, update its value to (overriding the previous value).

  2. Return the prefix sum:

    1. Given a string, prefix, return the total sum of all values associated with keys that start with this prefix.

To accomplish this, implement a class MapSum:

  • Constructor: Initializes the object.

  • void insert (String key, int val): Inserts the key-value pair into the data structure. If the key already exists, its value is updated to the new one.

  • int sum (String prefix): Returns the total sum of values for all keys that begin with the specified prefix.

Constraints:

  • 11 \leq key.length, prefix.length ...