python定义栈_Python开发中栈的定义及用法详解
前言
在Python開發中棧的設計和使用是常用到的,可以說是學習Python必須要掌握的一個技能,那么作為程序猿的你掌握了多少呢?掌握不熟練?沒關系,跟著小編再來學習一下吧。
正文
棧是常用的數據結構。盡管一般的面試里不會讓直接寫一個棧的實現,不過跟棧有關的編程題很多,今天就遇到一個。
首先看一下棧的定義。棧是一個集合,具有下面的2種基本操作
push: 把元素加入集合,這個過程我們叫做壓入
pop: 把最后加入集合的元素從集合中移除,這個過程我們叫做推出
所以棧在移除元素的時候是遵循LIFO(last in, first out),也就是后進先出的原則的。
直接設計代碼:class stack(object):
"""docstring for stack"""
def __init__(self, data):
self.data = []
def push(self,elm):
self.data.append(elm)
def pop(self):
self.data.pop()
def len(self):
return len(self.data)
def is_empty(self):
return len(self)== 0
題目:請使用代碼實現判斷表達式中小括號是否匹配的功能。如果匹配返回True,否則返回False。比如(x * (y +z)) +10中,小括號是匹配的。而(a + b) * )c - d中小括號是不匹配的。
遍歷表達式每一個字符
如左括號,將左括號壓入棧
如右括號,則判斷棧是否為空,不為空則推出,為空就證明右括號沒有匹配的項目,返回False
遍歷結束之后判斷棧是否為空,不為空則返回False,否則返回True
完整代碼實現如下
def match_parentthese(erp):
data = stack()
for ele in erp:
if ele == "(":
data.push(ele)
elif ele == ")":
if data.is_empty():
return False
break
else:
data.pop()
else:
pass
if data.is_empty():
return True
else:
return False
結尾
通過本文各位小盆友們是不是對于Python開發中的棧有了一定的了解了?平時還得靠小伙伴們的多多練習學以致用啊。
總結
以上是生活随笔為你收集整理的python定义栈_Python开发中栈的定义及用法详解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: MyCobot六轴机械臂(七)--实战M
- 下一篇: 进销存系统 库存系统 订单管理系统