欢迎访问 生活随笔!

生活随笔

当前位置: 首页 >

双端队列的实现与应用

发布时间:2025/10/17 28 豆豆
生活随笔 收集整理的这篇文章主要介绍了 双端队列的实现与应用 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

抽象数据类型dequeue

一、实现

  • 方法1
from collections import dequeue
  • 方法2
    基于list
class Dequeue():def __init__(self):self.items = []def addFront(self, item):"""右侧为front"""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 isEmpty(self):return self.items == []def size(self):return len(self.items)

二、应用:判断是否为回文字符串

from dequeue import Dequeuedef pal_checker(mystr):"""检查字符串是否为回文字符串,即正序等于逆序字符串"""dq = Dequeue()mylist = [i for i in mystr]indicator = Truefor item in mylist:dq.addRear(item)for i in range(dq.size()//2):fornt = dq.removeFront()rear = dq.removeRear()if fornt != rear:indicator = Falsebreakreturn indicatorif __name__ == '__main__':print(pal_checker("lsdkjfskf"))print(pal_checker("radar"))

类似balance问题,用stack也可求解

总结

以上是生活随笔为你收集整理的双端队列的实现与应用的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。