双向队列是比栈和普通队列灵活的一种数据结构
代码如下:
下面展示一些 内联代码片
。
class Deque:
def __init__(self):
self.items = []
def isEmpty(self):
return self.items == []
def addFront(self,item): #插在队尾
self.items.append(item)
def addRear(self,item): #插在队首
self.items.insert(0,item)
def removeFront(self): #从队尾移除
self.items.pop()
def removeRear(self): #从队首移除
self.items.pop(0)
def size(self):
return len(self.items)
用双向队列判定回文词:
下面展示一些 内联代码片
。
class Deque:
def __init__(self):
self.items = []
def isEmpty(self):
return self.items == []
def addFront(self,item): #插在队尾
self.items.append(item)
def addRear(self,item): #插在队首
self.items.insert(0,item)
def removeFront(self): #从队尾移除
return self.items.pop()
def removeRear(self): #从队首移除
return self.items.pop(0)
def size(self):
return len(self.items)
def huiwen(msg):
dq=Deque()
for char in msg:
dq.addRear(char)
stillEqual=True
while dq.size()>1 and stillEqual:
first =dq.removeFront()
last =dq.removeRear()
if first != last:
stillEqual =False
return stillEqual
print(huiwen('radar'))
print(huiwen('asdfgh'))