双端队列:英文名字:deque (全名double-ended queue)是一种具有队列和栈性质的抽象数据类型。
双端队列中的元素可以从两端弹出,插入和删除操作限定在队列的两边进行。
双端队列可以在队列任意一端入队和出队。此外,经常还会有一个查看(Peek)操作,返回该端的数
据而不将其出队。
python的实现代码:
class Deque: def __init__(self): self.items = [] def is_empty(self): return self.items == [] def add_front(self,item): self.items.append(item) def add_rear(self,item): self.items.insert(0,item) def remove_front(self): return self.items.pop() def remove_rear(self): return self.items.pop(0) def size(self): return len(self.items)
双端队列的特性决定了它很容易解决经典的回文问题。这里就给出源码,仅供参考:
from Deque import * def pal_checker(a_string): char_deque = Deque() for ch in a_string: char_deque.add_rear(ch) still_equal = True while char_deque.size() > 1 and still_equal: first = char_deque.remove_front() last = char_deque.remove_rear() if first != last: still_equal = False return still_equal print(pal_checker("lsdkjfskf")) print(pal_checker("radar"))
作者:虚生 出处:https://www.cnblogs.com/dylancao/ 以音频和传感器算法为核心的智能可穿戴产品解决方案提供商 ,提供可穿戴智能软硬件解决方案的设计,开发和咨询服务。 勾搭热线:邮箱:1173496664@qq.com weixin:18019245820 市场技术对接群:347609188 |
![]() |