Design (key, value) Storage with Snapshots
Examples
Example 1:
Input: ["SnapshotMap","put","put","snapshot","put","get","getSnapshot","get","getSnapshot"]
[[],["a","a-foo"],["b","b-foo"],[],["a","a-foo-prime"],["a"],[0,"a"],["b"],[0,"b"]]
Output: [null,null,null,0,null,"a-foo-prime","a-foo","b-foo","b-foo"]
Explanation:
Example 2:
Input: ["SnapshotMap","put","snapshot","put","snapshot","getSnapshot","getSnapshot","get"]
[[],["k","v0"],[],["k","v1"],[],[0,"k"],[1,"k"],["k"]]
Output: [null,null,0,null,1,"v0","v1","v1"]
Explanation:
Example 3:
Input: ["SnapshotMap","snapshot","getSnapshot","get"]
[[],[],[0,"missing"],["missing"]]
Output: [null,0,"",""]
Explanation: