我有一个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
是保存的项目数。但我不知道如何检查密码是否正确。
答案 0 :(得分:2)
关键是从最后添加的值开始向后读取密码。如果密码正确,请检查密码中的每个字符/数字。如果你可以在最后看到密码,那你就是好的。以下是我的观点:
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