抽象数据类型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也可求解

双端队列的实现与应用相关推荐

  1. C++ 双端队列(deque)的使用

    双端队列(deque)是什么 双端队列(deque)是一种随机访问的数据类型,提供了在序列两端快速插入和删除的功能,deque类似于vector, 双端队列(deque)属于STL(Standard ...

  2. python deque双端队列的神奇用法

    python中的deque双端队列,类似list的任意一端都可实现较快的add和pop操作 from collections import dequed=deque(maxlen=20) for i ...

  3. python数据结构与算法:队列与双端队列

    双端队列: #################队列#################### #coding:utf-8 """ Deque() 创建一个空的双端队列 ad ...

  4. LeetCode实战:设计循环双端队列

    题目英文 Design your implementation of the circular double-ended queue (deque). Your implementation shou ...

  5. 数据结构之队列、双端队列

    数据结构之队列.双端队列 队列(queue)是只允许在一端进行插入操作,而在另一端进行删除操作的线性表. 队列是一种先进先出的(First in First Out)的线性表,简称FIFO.允许插入的 ...

  6. 关于学习Python的一点学习总结(54->集合->堆->双端队列)

    集合,堆,双端队列 再谈集合set:集合是由内置类set实现的 >>> set(range(10)){0, 1, 2, 3, 4, 5, 6, 7, 8, 9} 可使用序列(或其他可 ...

  7. java lifo 队列_1.8 Java 队列 Queue、双端队列 Deque - Java 知识总结与学习

    queue 在java5中新增加了java.util.Queue接口,用以支持队列的常见操作.该接口扩展了java.util.Collection接口.除了基本的 Collection 操作外,队列还 ...

  8. HDU 4286 Data Handler [栈,双端队列]

    这题比较容易想到的做法是splay,但是splay写起来比较麻烦而且每次操作都有LogN的复杂度,双向链表也是可以实现的,但实践起来比较麻烦,尤其是翻转操作... 可以发现每次L或者R都是移动一位的, ...

  9. bzoj 2457 [BeiJing2011]双端队列 模拟+贪心

    [BeiJing2011]双端队列 Time Limit: 10 Sec  Memory Limit: 128 MB Submit: 457  Solved: 203 [Submit][Status] ...

  10. 堆和栈组合:双端队列c++

    双端队列(Deque:double ended queue)就是一个两端都是结尾的队列.队列的每一端都可以插入数据项和移除数据项.相对于普通队列,双端队列的入队和出队操作在两端都可进行. 双端队列的示 ...

最新文章

  1. 这26个阿里 Java 开源项目,你用过几个?
  2. 扩增子统计绘图8网络图-MENA
  3. python3.5.0下载-python核心编程最新版下载
  4. 060_Unicode字符编码
  5. nRF5_SDK_12.3.0 编译micro-ecc摘要
  6. Intel Realsense D435 测试摄像头在不同曝光值下的帧生成时间(防止曝光时间过长导致fps下降)auto_exposure_priority(没成功)
  7. Landsat中国西北地区行列号Shapefile图层对照(附行列号Shapefile下载)
  8. 一维二维_更高效的一维、二维材料过渡态搜索
  9. 启动页面和各设备的宽高比及像素
  10. 正则表达式的学习使用
  11. 单片机支持EM4100和T5577两种ID门禁卡
  12. linux 命令无法Tab补全,命令参数无法补全
  13. 机器学习:公式推导与代码实现全书代码!
  14. RK3399 GT1X触摸屏驱动调试笔记
  15. 一日一技:用Python绘画有多好玩
  16. 盆栽的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
  17. JS的string方法
  18. 欧洲杯第三周的比赛闲聊
  19. word导出数据(tp5)
  20. 程序设计与算法(一)C语言程序设计-郭炜-笔记 (自用)

热门文章

  1. 【7.2】__getattr__、__getattribute__魔法函数
  2. 图解kafka - 设计原理解析
  3. @总结 - 6@ 后缀自动机
  4. pygame (1) 移动小乌龟
  5. sql查询每个学生的最高成绩mysql语句
  6. Processing Orders With Windows Workflow
  7. mysql的字符串处理函数
  8. Ubuntu8.10安装Netbeans6.7中文乱码解决方案
  9. git切换到指定tag
  10. es java聚合查询只有10_关于在elasticSearch中使用聚合查询后只显示10个bucket的问题...