Python实现栈、队列、双端队列
栈的实现
class Stack():
def __init__(self):
self.items = [] def push(self, item):
self.items.append(item) def pop(self):
return self.items.pop() def peek(self):
return self.items[len(self.items)-1] def isEmpty(self):
return len(self.items) == 0 def size(self):
return len(self.items) stack=Stack()
stack.push(1)
stack.push(2)
stack.push(3)
print(stack.peek())
print(stack.pop())
print(stack.pop())
print(stack.pop())
队列的实现
#coding:utf8
class Queue():
def __init__(self):
self.items = [] def enqueue(self, item):
self.items.insert(0, item) def dequeue(self):
return self.items.pop() def isEmpty(self):
return len(self.items) == 0 def size(self):
return len(self.items) # queue = Queue()
# queue.enqueue(1)
# queue.enqueue(2)
# queue.enqueue(3)
# print(queue.size())
# print(queue.dequeue())
# print(queue.dequeue())
# print(queue.dequeue())
队列算法之烫手的山芋
kids = ["A", "B", "C", "D", "E", "F"] # 参加游戏的孩子
queue = Queue()
for kid in kids:
queue.enqueue(kid)
while queue.size() > 1:
for i in range(6):
queue.enqueue(queue.dequeue())
queue.dequeue()
print(queue.dequeue())
双端队列的实现
# coding:utf8
# 队列 :尾部--->首部
class Deque():
def __init__(self):
self.items = [] def addFront(self, item):
self.items.append(item) def addRear(self, item):
return self.items.insert(0, item) def removeFront(self):
return self.items.pop() def removeRear(self):
return self.items.pop(0) def isEmpty(self):
return len(self.items) == 0 def size(self):
return len(self.items)
双端队列算法之回文检测
# 实现回文检查
def isHuiWen(_str):
flag = True
deque = Deque()
for i in _str:
deque.addFront(i)
while deque.size() > 1:
if deque.removeFront() != deque.removeRear():
flag = False
break
return flag print(isHuiWen("hooh"))
print(isHuiWen("hoioh"))
print(isHuiWen("hoijoh"))
Python实现栈、队列、双端队列的更多相关文章
- 《算法实战策略》-chaper19-队列、栈和双端队列
对于计算机专业的学生来说,他们一定会很熟悉一句话:程序设计 = 算法 + 数据结构.而根据笔者的理解,所谓程序设计其实就是为了编程解决实际问题,所谓算法是一种解决问题某种思维的方法,但是思维需要得到编 ...
- 用python实现栈/队列/双端队列/链表
栈是元素的有序集合,添加操作与移除操作都发生在其顶端,先进后出栈操作:创建空栈,增删(顶端),查(顶端元素,元素个数,是否为空)应用:将十进制数转换成任意进制数 class Stack: # 用列表创 ...
- HDU-6375-度度熊学队列-双端队列deque/list
度度熊正在学习双端队列,他对其翻转和合并产生了很大的兴趣. 初始时有 NN 个空的双端队列(编号为 11 到 NN ),你要支持度度熊的 QQ 次操作. ①11 uu ww valval 在编号为 u ...
- 计蒜客 A2232.程序设计:蒜厂年会-单调队列(双端队列(STL deque)实现)滑窗维护最小前缀和
程序设计:蒜厂年会 问答问题反馈 只看题面 16.79% 1000ms 262144K 在蒜厂年会上有一个抽奖,在一个环形的桌子上,有 nn 个纸团,每个纸团上写一个数字,表示你可以获得多少蒜币. ...
- python基础教程_学习笔记19:标准库:一些最爱——集合、堆和双端队列
版权声明:本文为博主原创文章.未经博主同意不得转载. https://blog.csdn.net/signjing/article/details/36201499 标准库:一些最爱 集合.堆和双端队 ...
- PHP双向队列,双端队列代码
<?php /** * User: jifei * Date: 2013-07-30 * Time: 23:12 */ /** * PHP实现双向队列,双端队列 * 双端队列(dequ ...
- C++泛化双端队列
循环双端队列 双端队列可以在队首和队尾进行入队操作.出队操作的特殊队列. 循环双端队列是充分利用空间,使用格外的数据存储队头和队尾,这里利用数组进行实现. 循环双端队列(CircleQueue.h) ...
- python 下的数据结构与算法---4:线形数据结构,栈,队列,双端队列,列表
目录: 前言 1:栈 1.1:栈的实现 1.2:栈的应用: 1.2.1:检验数学表达式的括号匹配 1.2.2:将十进制数转化为任意进制 1.2.3:后置表达式的生成及其计算 2:队列 2.1:队列的实 ...
- python中使用双端队列解决回文问题
双端队列:英文名字:deque (全名double-ended queue)是一种具有队列和栈性质的抽象数据类型. 双端队列中的元素可以从两端弹出,插入和删除操作限定在队列的两边进行. 双端队列可以在 ...
- 用Python实现的数据结构与算法:双端队列
一.概述 双端队列(deque,全名double-ended queue)是一种具有队列和栈性质的线性数据结构.双端队列也拥有两端:队首(front).队尾(rear),但与队列不同的是,插入操作在两 ...
随机推荐
- AtCoder ARC 115 E - LEQ and NEQ (延迟标记线段树 or 笛卡尔积 + DP维护)
问题链接:Here 长度为 \(N\) 的数列 \(A_1,-,A_N\) .回答满足以下条件的长度 \(N\) 的数列 \(X_1,-,X_N\) 的个数除以 \(998244353\) 的余数. ...
- 【每日一题】40. 旅游 (树形DP解决树的最大独立集)
补题链接:Here 算法涉及:树形DP寻找树上最大独立集 一开始想到是利用 树形DP 找树的直径问题,但这里由于可以利用走过的点衍生,所以不符合树的直径问题 查询了一下资料这道题是属于: 树的最大独立 ...
- tinymce富文本编辑器升级问题
突然这样,之前好好地.
- uni-app滚动加载下一页
https://www.bilibili.com/video/BV1BJ411W7pX?p=39
- wiremock设置接口入参的判断条件
一.wiremock管理台url: http://192.168.37.8:7777/__admin/swagger-ui/ 可重启测试桩,获取响应信息等操作 二.设置接口响应入参的判断条件 如当影 ...
- springboot启动流程 (3) 自动装配
在SpringBoot中,EnableAutoConfiguration注解用于开启自动装配功能. 本文将详细分析该注解的工作流程. EnableAutoConfiguration注解 启用Sprin ...
- 星索称重/生产管理软件 联机版V1.0
星索称重/生产管理软件 联机版V1.0 一.特点 1.支持多用户.多组织管理,灵活控制用户权限. 2.支持地磅秤.智能电子秤.轨道秤等多款称重设备. 3.支持三联单/热敏纸等多种打印模板. 二.系 ...
- ONVIF网络摄像头(IPC)客户端开发—RTSP RTCP RTP加载AAC音频流
前言: RTSP,RTCP,RTP一般是一起使用,在FFmpeg和live555这些库中,它们为了更好的适用性,所以实现起来非常复杂,直接查看FFmpeg和Live555源代码来熟悉这些协议非常吃力, ...
- [转帖]linux查看端口及端口详解
https://www.cnblogs.com/the-tops/p/6126941.html 今天现场查看了TCP端口的占用情况,如下图 红色部分是IP,现场那边问我是不是我的程序占用了tc ...
- [转帖]TiDB Lightning 监控告警
https://docs.pingcap.com/zh/tidb/v6.5/monitor-tidb-lightning tidb-lightning 支持使用 Prometheus 采集监控指标 ( ...