题解 | #设计LRU缓存结构#Python
设计LRU缓存结构
http://www.nowcoder.com/practice/e3769a5f49894d49b871c09cadd13a61
class Solution:
def LRU(self , operators , k ):
# write code here
if not operators or not k:
return []
List = [] #Cache
res = [] #Results
# set()
def set(List, ele, k):
for j in range(len(List)):
if ele[1] == List[j][0]:
del List[j]
List.append([ele[1], ele[2]])
return
if len(List) == k:
del List[0]
List.append([ele[1], ele[2]])
# get()
def get(List, ele, res):
if len(List) == 0:
res.append(-1)
for j in range(len(List)):
if ele[1] == List[j][0]:
sav = List[j]
del List[j]
List.append(sav)
res.append(sav[1])
break
if j == len(List)-1:
res.append(-1)
#input
for ele in operators:
if ele[0] == 1:
set(List, ele, k)
else:
get(List, ele, res)
return res
查看14道真题和解析