【问题标题】:Implementing a queue for a digicode-like system为类似 digicode 的系统实现队列
【发布时间】:2016-07-08 12:02:13
【问题描述】:

我有一个带有QPushButtons 的系统,它可以像数字密码门一样工作。每个按钮都有一个 ID(整数)。当您按下的最后一个按钮对应于给定的密码时,事情就会发生(比如门打开了)。

我正在考虑使用队列来实现这一点,并带有指向最后添加的值的指针。但是如何测试密码是否正确?

这是我还没有的代码:

class MyQueue():
    def __init__(self, size, defaultValue=None):
        self.size = size
        self.content = [defaultValue]*size
        self.end = self.size-1
    def addItem(self, value):
        self.end = (self.end+1)%self.size
        self.content[self.end] = value
    def checkCorrect(self, password):
        pass #???

我可以填满队列,size 是保存的项目数。但是我不知道如何检查密码是否正确。

【问题讨论】:

    标签: python python-2.7 queue pyside


    【解决方案1】:

    关键是从最后添加的值开始向后读取密码。检查密码中的每个字符/数字是否正确。如果你能读到最后的密码,你很好。以下是我的建议:

        def checkCorrect(self, password):
            pw = list(reversed(password))
            i = 0
            j = self.end
            if len(pw) > self.size:
                return False
            while True:
                if pw[i] <> self.content[j]:
                    return False
                else:
                    i += 1
                    j = (j-1)%self.size
                    if i == len(pw):
                        return True
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-09-27
      • 2021-04-21
      • 1970-01-01
      • 1970-01-01
      • 2015-05-20
      • 2014-06-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多