Time-Based Key-Value Store

Try to solve the Time-Based Key-Value Store problem.

Statement

Design a data structure that can store multiple values of the same key at different timestamps and retrieve the key’s value at a certain timestamp.

Implement a struct, TimeStamp, which should provide the following functionalities:

  • NewTimeStamp(): This function initializes the values dictionary and timestamp dictionary.

  • Set Value(key, value, timestamp): This function stores the key and value at any given timestamp.

  • Get Value(key, timestamp): This function returns the value set for this key at the specified timestamp.

Note: When a query requests the value of a key at a timestamp that isn’t recorded, return the value corresponding to the most recent timestamp before the query’s timestamp. If there are no timestamps before the query’s timestamp, return an empty string.

Constraints:

  • 1≤1 \leq key.length, value.length ≤20\leq 20
  • key and value consist of lowercase English letters and digits.
  • 1≤1 \leq timestamp ≤103\leq 10^3
  • At most 1×1031 \times 10^3 calls will be made to Set Value and Get Value.
  • All the timestamps, timestamp, of Set Value are strictly increasing.

Examples

Create a free account to view this lesson.

By signing up, you agree to Educative's Terms of Service and Privacy Policy