
双向队列是比栈和普通队列灵活的一种数据结构




代码如下:
下面展示一些 内联代码片。
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'))
需要注意的是,在判定回文词的过程中,需要把双向队列的两个移除方法都加入返回值
运行结果如下:

该博客介绍了如何利用双向队列数据结构来判断一个字符串是否为回文。通过创建一个Deque类实现双向队列,然后将输入字符串的字符依次入队。接着,不断比较队头和队尾的字符,若不相等则说明不是回文,反之则继续检查,直到队列只剩下一个元素或发现不匹配。示例代码展示了如何操作双向队列并应用在回文判断上。
2946

被折叠的 条评论
为什么被折叠?



