cswork / libraryOpen practice workspace

Interview questions · Squarepoint

Apply Insert, Update, and Remove Operations to a Keyed Store

Apply insert, update, and remove commands to a keyed store with explicit duplicate and missing-key policies and deterministic final records.

Implement manage_records(operations) to apply insert, update, and remove commands to an initially empty keyed record store.

The pedagogical policies below make the small record-management task deterministic. An insert rejects an existing key, while update and remove reject a missing key. A rejected operation leaves the store unchanged. The function records the error and continues with later operations; the console does not expose language-specific exception classes.

Function Signature

manage_records(operations: list[list[str]]) -> dict

Input

Each operation is a three-string array [action, key, value]:

  • "insert": add key with value; return status "inserted", or "exists" if the key is already present.
  • "update": replace an existing key's value; return "updated", or "missing" if the key is absent.
  • "remove": delete an existing key; return "removed", or "missing" if the key is absent. Its value field is always the empty string and is ignored.

Output

Return an object with exactly these keys:

  • statuses: one status string per input operation, in input order.
  • records: the remaining [key, value] pairs sorted by key in ascending ASCII lexicographic order.

Constraints

  • 0 <= len(operations) <= 100000.
  • Every action is one of the three strings defined above.
  • Each key contains 1 to 40 lowercase ASCII letters or digits.
  • Each value contains 0 to 100 printable ASCII characters.
  • The input is valid. Do not mutate it.

Examples

Input: operations = [["insert","a","first"],["insert","a","second"],["update","a","third"],["remove","b",""]]

Output: {"statuses":["inserted","exists","updated","missing"],"records":[["a","third"]]}

Input: operations = [["insert","z",""],["remove","z",""]]

Output: {"statuses":["inserted","removed"],"records":[]}

Input: operations = []

Output: {"statuses":[],"records":[]}

Community answers

Nothing here yet.

Join in on CSWork →