Design and build a "least recently used" cache, which evicts the least recently used item.
The cache should map from keys to values (allowing you to
insert and retrieve a value associated with a particular key) and be initialized with a max size.
When it is full, it should evict the least recently used item.
You can assume the keys are integers and the values are strings.