Python数据结构(列表、栈)

列表(list):

afb71fa64d024d9b8f93eb23f396108f.png

 

 栈(stack):
4af46e39c7cb4d348ac8724092f55ea7.png

 括号匹配问题:

674831a2765f4a4c9cc226a7f493638b.png

 定义栈的类

#定义栈的类
class Stack:
    def __init__(self):        #定义栈
        self.stack=[]

    def push(self,element):    #添加元素
        self.stack.append(element)

    def pop(self):            #取出元素
        if len(self.stack)>0:
            return self.stack.pop()
        else:
            return None

    def get_top(self):        #得到栈顶元素
        if len(self.stack)>0:
            return self.stack[-1]
        else:
            return None

    def is_empty(self):        #判断栈是否存在元素
        return len(self.stack)==0

括号匹配问题代码

def brace_match(s):
    match={'}':'{',']':'[',')':'('}
    stack=Stack()
    for ch in s:
        if ch in {'(','{','['}:                #如果初始是左括号就添加
            stack.push(ch)
        else:
            if stack.is_empty():                #如果为空抛出异常
                return False
            elif stack.get_top()==match(ch):    #如果为左括号匹配的右括号就弹出
                stack.pop()
            else:    #不匹配抛出异常
                return False
    if stack.is_empty():             #如果最终为空成功
        return True
    else:                            #最终不为空不成功
        return False

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

_te_amo

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值