# lru design# @param operators int整型二维数组 the ops# @param k int整型 the k# @return int整型一维数组#classSolution:def__init__(self, k):
self.k = k
self.keys =[]
self.dct ={}# self.res = []# def LRU(self , operators , k ):# # write code here# for op in operators:# if op[0] == 1: self.set(op[1], op[2])# else: self.res.append(self.get(op[1]))# return self.resdefgets(self, key):if key in self.dct:
self.keys.remove(key)# 先remove,再append表示操作位置的更新
self.keys.append(key)return self.dct[key]return-1defsets(self, key, v):if key in self.dct:
self.keys.remove(key)
self.keys.append(key)else:
self.keys.append(key)
self.dct[key]= v
iflen(self.keys)> self.k:
self.dct.pop(self.keys.pop(0))# 删掉最远未用的(即第0个)import sys
for line in sys.stdin.readlines():
a = line.strip().replace(' ','').split(']],')
s = Solution(int(a[1]))
res =[]for item in a[0][2:].split('],['):
m = item.split(',')if m[0]=='1':
s.sets(int(m[1]),int(m[2]))else:
res.append(s.gets(int(m[1])))print(str(res).replace(' ',''))