位置: 编程技术 - 正文

Python算法应用实战之栈详解(python算法怎么用)

编辑:rootadmin

推荐整理分享Python算法应用实战之栈详解(python算法怎么用),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:python算法基础,python的算法,python算法研究,python算法基础,python算法案例,python算法基础,python算法基础,python算法基础,内容如对您有帮助,希望把文章链接给更多的朋友!

栈(stack)

栈又称之为堆栈是一个特殊的有序表,其插入和删除操作都在栈顶进行操作,并且按照先进后出,后进先出的规则进行运作。

如下图所示

例如枪的弹匣,第一颗放进弹匣的子弹反而在发射出去的时候是最后一个,而最后放入弹匣的一颗子弹在打出去的时候是第一颗发射出去的。

栈的接口

如果你创建了一个栈,那么那么应该具有以下接口来进行对栈的操作

接口 描述 push() 入栈 pop() 出栈 isEmpty() 判断是否为空栈 length() 获取栈的长度 getTop() 取栈顶的元素,元素不出栈

知道栈需要上述的接口后,那么在Python中,列表就类似是一个栈,提供接口如下:

操作 描述 s = [] 创建一个栈 s.append(x) 往栈内添加一个元素 s.pop() 在栈内删除一个元素 not s 判断是否为空栈 len(s) 获取栈内元素的数量 s[-1] 获取栈顶的元素

Python中的栈接口使用实例:

一大波实例

在了解栈的基本概念之后,让我们再来看几个实例,以便于理解栈。

括号匹配

题目

假如表达式中允许包含三中括号()、[]、{},其嵌套顺序是任意的,例如:

正确的格式

错误的格式

编写一个函数,判断一个表达式字符串,括号匹配是否正确

思路

创建一个空栈,用来存储尚未找到的左括号; 便利字符串,遇到左括号则压栈,遇到右括号则出栈一个左括号进行匹配; 在第二步骤过程中,如果空栈情况下遇到右括号,说明缺少左括号,不匹配; 在第二步骤遍历结束时,栈不为空,说明缺少右括号,不匹配;Python算法应用实战之栈详解(python算法怎么用)

解决代码

建议在pycharm中打断点,以便于更好的理解

迷宫问题

题目

用一个二维数组表示一个简单的迷宫,用0表示通路,用1表示阻断,老鼠在每个点上可以移动相邻的东南西北四个点,设计一个算法,模拟老鼠走迷宫,找到从入口到出口的一条路径。

如图所示

出去的正确线路如图中的红线所示

思路

用一个栈来记录老鼠从入口到出口的路径 走到某点后,将该点左边压栈,并把该点值置为1,表示走过了; 从临近的四个点中可到达的点中任意选取一个,走到该点; 如果在到达某点后临近的4个点都不走,说明已经走入死胡同,此时退栈,退回一步尝试其他点; 反复执行第二、三、四步骤直到找到出口;

解决代码

后缀表达式求值

题目

计算一个表达式时,编译器通常使用后缀表达式,这种表达式不需要括号:

中缀表达式 后缀表达式 2 + 3 * 4 2 3 4 * + ( 1 + 2 ) * ( 6 / 3 ) + 2 1 2 + 6 3 / * 2 + / ( 3 * ( 1 + 2 ) ) 3 1 2 + * /

编写程序实现后缀表达式求值函数。

思路

建立一个栈来存储待计算的操作数; 遍历字符串,遇到操作数则压入栈中,遇到操作符号则出栈操作数(n次),进行相应的计算,计算结果是新的操作数压回栈中,等待计算 按上述过程,遍历完整个表达式,栈中只剩下最终结果;

解决代码

背包问题

题目

有一个背包能装kg的物品,现在有6件物品分别为:

物品名称 重量 物品0 1kg 物品1 8kg 物品2 4kg 物品3 3kg 物品4 5kg 物品5 2kg

编写找出所有能将背包装满的解,如物品1+物品5。

解决代码

总结

标签: python算法怎么用

本文链接地址:https://www.jiuchutong.com/biancheng/380033.html 转载请保留说明!

上一篇:Python算法应用实战之队列详解(python算法的应用)

下一篇:Django应用程序中如何发送电子邮件详解(django应用开发实战)

  • 金税盘服务费全额抵扣
  • 佣金交税吗
  • 所得税费用税前扣除项目
  • 利润表主营业务成本怎么算
  • 企业向银行贷款属于融资吗
  • 什么情况需要预缴增值税
  • 财务如何审核合同支付条款风险
  • 折让折扣负数发票的会计处理
  • 房地产开发企业土地增值税清算
  • 出口货款收不回来怎么办
  • 应收账款转让的会计处理
  • 一般纳税人制作除尘器的制作费开票税率是多少
  • 税务局代开的增值税专票可以红冲吗?
  • 公司人事怎么办公积金提取流程?
  • 出口退税和企业所得税
  • 免税企业收到的专用发票要怎么转出
  • 通用机打发票税率在哪改
  • 取得不动产时的作价
  • 高新技术企业怎么申报企业所得税
  • 出售房产收入计入什么科目
  • 报税提示您可能缺少相关组件怎么处理
  • 计提缴纳社保的会计分录
  • 停车场收入如何确认缴税
  • 增值税价外费用开票内容
  • 基本户没开 可以销户吗
  • 亏损企业能否享受失业金
  • 返利发票税率
  • linux下xhost命令报错:unable to open display的解决办法
  • 税负率的计算方法公式
  • 超标的业务招待费属于什么差异
  • 什么叫交易类型
  • win11安装失败0xc1900201
  • 预缴附加税款会退税吗
  • php面试题目100及最佳答案
  • 评估价格是按原值还是净值
  • 土地增值税预缴税率表
  • 详解php实现执行任务
  • php常见设计模式和用途
  • 温哥华瀑布
  • 一般经营循环资金周转量为负数
  • 前端进阶教程
  • upf命令
  • 7z命令行详解
  • 显示已申报未导入
  • 应收账款周转率下降说明什么
  • 什么是记账凭证账务处理程序
  • js中typeof用法
  • 其他综合收益影响所得税费用吗
  • 在建工程转固定资产会计科目
  • 增值税纳税申报实训心得体会
  • 工业企业增值税税负多少合理
  • 投资性房地产进项税抵扣
  • 加计扣除减免政策
  • 资产减值准备如何影响利润
  • 出口货物关税完税价格包括哪些
  • 营业外收入是指企业确认与企业生产经营活动没有
  • 企业应付职工薪酬的会计核算
  • 三方协议代付的钱在哪里
  • 研发人员工资是实发还是应发
  • 在建工程账务处理会计分录
  • 企业营业利润率怎么算
  • 100%直接控制的母子公司之间,母公司向子公司
  • navicat连接教程
  • mysqlgroupby用法解析详细
  • win8创建系统映像
  • windows8功能设置
  • linux查看mtime的命令
  • unity3ds
  • 判断div滑动到底怎么操作
  • jquery操作html代码
  • 变量选择lasso
  • unity 读取txt
  • 基于jquery实现小说
  • node js并发加载缓慢
  • cmd nul
  • javascript编写
  • javascript原理详解
  • 劳务包含哪些
  • 买车险代收车船税合法吗
  • 关于个体户的个人所得税的最新政策法规
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设