class Deque:
def __init__(self):
self.items = []
# 将一个元素添加到双端队列的前端
# (往列表右端添加数据,原数据往左移)
def addFront(self, data):
self.items.append(data)
# 将一个元素添加到双端队列的后端
# (往列表左端添加数据,原数据往右移)
def addRear(self, data):
self.items.insert(0, data)
# 从双端队列的前端移除一个元素
# (移除列表右端的一个数据)
def removeFront(self):
return self.items.pop()
# 从双端队列的后端移除一个元素
# (移除列表左端的一个数据)
def removeRear(self):
return self.items.pop(0)
# 检查双端队列是否为空
def isEmpty(self):
return self.items == []
# 查看双端队列中元素的个数
def size(self):
return len(self.items)
# 打印双端队列
def __repr__(self):
return str(self.items)
【例】回文检测器
def checker(s):
deque = Deque()
for c in s:
deque.addFront(c)
sIsHuiWen = True
while deque.size() > 1:
front = deque.removeFront()
rear = deque.removeRear()
if front == rear:
pass
else:
sIsHuiWen = False
break
return sIsHuiWen
print(checker('toot'))