作家
登录

Python算法实战系列:栈

作者: 来源: 2017-05-26 14:04:49 阅读 我要评论

栈(stack)又称之为客栈是一个特别的有序表,其插入和删除操作都在栈顶进行操作,并且按照先辈后出,落后先出的规矩进交运作。

如下图所示

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

如不雅你创建了一个栈,那么那么竽暌功该具有以下接口来进行对栈的操作

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

Python中的┞坊接口应用实例:

  1. {()[()]},[{({})}] 
  1. # 创建一个栈 
  2.  
  3. In [1]: s = [] 
  4.  
  5. # 往栈内添加一个元素 
  6.  
  7. In [2]: s.append(1) 
  8.  
  9. In [3]: s 
  10.  
  11. Out[3]: [1] 
  12.  
  13. # 删除栈内的一个元素 
  14.  
  15. In [4]: s.pop() 
  16.  
  17. Out[4]: 1 
  18.  
  19. In [5]: s 
  20.  
  21. Out[5]: [] 
  22.  
  23. # 断定栈是否为空 
  24.  
  25. In [6]: not s 
  26.  
  27. Out[6]: True 
  28.  
  29. In [7]: s.append(1) 
  30.  
  31. In [8]: not s 
  32.  
  33. Out[8]: False 
  34.  
  35. # 获取栈内元素的数量 
  36.  
  37. In [9]: len(s) 
  38.  
  39. Out[9]: 1 
  40.  
  41. In [10]: s.append(2) 
  42.  
  43. In [11]: s.append(3) 
  44.  
  45. # 取栈顶的元素 
  46.  
  47. In [12]: s[-1] 
  48.  
  49. Out[12]: 3  

一大年夜波实例

在懂得栈的根本概念之后,让我们再来看几个实例,以便于懂得栈。

栈的接口

括号匹配

标题

假如表达式中许可包含三中括号()、[]、{},其嵌套次序是随便率性的,例如:

精确的格局

缺点的格局

  1. [(]),[()),(()} 

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

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

思路

  1. 创建一个空栈,用来存储尚未找到的左括号;
     1/7    1 2 3 4 5 6 下一页 尾页

      推荐阅读

      “互联网+”让出租车更智慧

    走进淮北市运输治理处信息批示中间,一幅由6块液晶显示屏构成的监控屏幕映入眼帘,经由过程屏幕画面可以清楚地看到全市在运行出租车的及时地位和车内人员的音视频信息。批示中间以每周7日>>>详细阅读


    本文标题:Python算法实战系列:栈

    地址:http://www.17bianji.com/lsqh/35452.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)