携程lru***算法,本地没有问题,线上越界,求帮忙

# 线下没有问题,线上一直越界,求大佬们帮忙看看是什么问题,谢谢

import sys


class LRUCache(object):
    def __init__(self, size=5):
        self.size = size
        self.*** = dict()
        self.key = []

    def get(self, key):
        if self.***.has_key(key):
            self.key.remove(key)
            self.key.insert(0, key)
            return self.***[key]
        else:
            return -1

    def set(self, key, value):
        if self.***.has_key(key):
            self.***.pop(key)
            self.***[key] = value
        elif len(self.***) == self.size:
            old_key = self.key.pop()
            self.***.pop(old_key)
            self.key.insert(0, key)
            self.***[key] = value
        else:
            self.***[key] = value
            self.key.insert(0, key)

if __name__ == '__main__':
    size = int(sys.stdin.readline().strip())
    lru = LRUCache(size)

    while True:
        oper = sys.stdin.readline().strip().split(' ')
        if oper[0] == 'p':
            lru.set(oper[1], oper[2])
        else:
            print lru.get(oper[1])

#携程##uc#
全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务