Katkat

Implement a hierarchical key-value store

DoorDashSoftware Engineer · Technical Screen

Last updated

Implement a hierarchical key-value store evaluates algorithm design, data structures, correctness, complexity, edge cases, and implementation details in a realistic interview setting. A strong answer states assumptions, handles edge cases, explains trade-offs, and shows how to validate the result clearly.

Implement an in-memory hierarchical key-value store where keys are UNIX-like paths joined by '/'. The root node is '/' with initial value '#'. Each node stores a string value. Support: (

  1. Create(path, value): create a node; parent must exist; fail if the node already exists. (
  2. SetValue(path, value): set the value; node must exist. (
  3. GetValue(path): return the value; node must exist. (
  4. Delete(path): delete the node only if it has no children; node must exist. Define the class interface, choose appropriate data structures, and provide time/space complexities. Include unit tests and discuss how you would add concurrency safety and optional persistence to disk.