【发布时间】:2021-08-07 07:58:16
【问题描述】:
堆栈中的项目应该是唯一的。有没有办法可以删除堆栈中的重复项?并通知用户他的输入已经在堆栈中?
这是我的代码:
class Node:
def __init__(self, key):
self.left = None
self.right = None
self.val = key
def printPreorder(root):
if root:
print(root.val),
printPreorder(root.left)
printPreorder(root.right)
class stack:
def __init__(self):
self.items = []
def push(self, item):
return self.items.append(item)
def pop(self):
return self.items.pop()
print ("Create 3 words using the letters:")
root = Node('n')
root.right = Node('o')
root.left = Node ('w')
printPreorder(root)
print("-----------------------------------")
s1 = stack()
while (s1.size() <3):
FirstList = (input("Enter the word you created: ")).lower()
if FirstList == 'won' or FirstList == 'own' or FirstList == 'now':
s1.push(FirstList)
print(s1.items)
else:
print('Try another word!')
【问题讨论】:
-
一种方法是将堆栈内容的副本存储在一个列表中并在那里搜索,但如果您的堆栈有很多元素,那就不好了
标签: python stack user-defined-functions