Tell me about your experience with OOPs concepts and data structures and algorithms.
For the hands-on portion, implement an LRU cache that demonstrates encapsulation and appropriate data-structure selection. Define lru_cache_operations(capacity, operations), where each operation is ['put', key, value] or ['get', key]; return the values from get operations in order, using null for misses. A successful get marks the key as most recently used.
def lru_cache_operations(capacity, operations):