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'))