cswork / libraryOpen practice workspace

Coding questions · Chicago Trading Company

Merge Nested Dictionaries Iteratively

This question evaluates a candidate's skill in iterative data structure manipulation and handling of nested dictionary merging semantics, including conflict resolution and value overriding.

Given a list of Python dictionaries, merge them into a single dictionary without using recursion.

Rules:

  • Process the dictionaries from left to right.
  • If a key appears in only one dictionary, keep that key-value pair.
  • If the same key appears in multiple dictionaries:
    • when both values are dictionaries, merge those dictionaries using the same rules;
    • otherwise, the value from the later dictionary overrides the earlier one.
  • You may assume keys are strings.

Example:

  • Input:
    • [{"a": 1, "b": {"x": 2}}, {"b": {"y": 3}, "c": 4}, {"b": {"x": 5}}]
  • Output:
    • {"a": 1, "b": {"x": 5, "y": 3}, "c": 4}

Implement a function that returns the merged dictionary using an iterative approach.

Merge Nested Dictionaries Iteratively

Merge dictionaries left-to-right, recursively merging nested dictionaries but implemented with an explicit stack.