LRU 字节跳动面试题目
LRU 字节跳动面试题目
2020-10-26
#coding=utf-8
import sys
from collections import OrderedDict
#str = input()
#print(str)
class LRU:
def __init__(self, size):
self.cache = OrderedDict()
self.size = size
def put(self, key, value):
self.cache[key] = value
if len(self.cache) > self.size:
self.cache.popitem(last=False)
print('test', key, self.cache.keys())
def get(self, key):
print('get', key, self.cache[key], self.cache.items())
if key not in self.cache:
return None
rv = self.cache[key]
#self.cache.move_to_end(last=False)
# correct version
self.cache.move_to_end(key, last=False)
return rv
if __name__ == "__main__":
lru = LRU(2)
lru.put('a', 1)
lru.put('b', 2)
lru.put('c', 3)
rv = lru.get('b')
print("testtestss", rv)