盛唐网站建设,成都市微信网站建,网站备案是不是就是空间备案,个体工商户如何注销约束和假设
我们正在缓存什么#xff1f; 我们正在缓存Web Query的结果我们可以假设输入是有效的#xff0c;还是需要对其验证#xff1f; 假设输入是有效的我们可以假设它适应内存吗#xff1f; 对
编码实现
class Node(object):def __init__(self, results):self.res…约束和假设
我们正在缓存什么 我们正在缓存Web Query的结果我们可以假设输入是有效的还是需要对其验证 假设输入是有效的我们可以假设它适应内存吗 对
编码实现
class Node(object):def __init__(self, results):self.results resultsself.prev Noneself.next Noneclass LinkedList(object):del __init__(self):self.head Noneself.tail Nonedef move_to_front(self, node): # ...def append_to_front(self, node): # ...def remove_from_tail(self): # ...class Cache(obejct):def __init__(self, MAX_SIZE):self.MAX_SIZE MAX_SIZEself.size 0self.lookup {}self.linked_list LinkedList()def get(self, query)Get the stored query result from the cacheAccsssing a node updates its position to the front of the LRU listnode self.lookup.get(query)if node is None:return Noneself.linked_list.move_to_front(node)return node.resultsdef set(self, resuts, query):Set the results for the given query key in the cache.When updating an entry, updates its position to the front of the LRU listIf the entry is new and the cache is at capacity, remove the oldest entry before the new entry is added node self.lookup.get(query)if node is not None: node.results resultsself.linked_list.move_to_front(node)else:if self.size self.MAX_SIZEself.lookup.pop(self.linked_list.tail.query, None)self.linked_list.remove_from_tail()else:self.size 1new_node Node(results)self.linked_list.append_to_front(new_node)self.lookup[query] new_node