跳到主要内容

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)