【mooc北大数据结构】【数据结构与算法python】第三周作业

本文介绍了使用Python解决数据结构与算法问题,重点是栈的应用,如有效括号匹配、一维开心消消乐和强迫症老板洗碗问题。通过扫描括号串,利用栈的特性进行匹配,以及在处理盘子取用问题时讨论不同情况,揭示了栈在解决实际问题中的关键作用。
摘要由CSDN通过智能技术生成

前几次运行不通过原因:栈的定义这个没有放进去,自己在编写程序的时候由于是下载了老师提供的资源,然后在程序一开始就导入了Stack,因此自己测试的时候没有问题,oj上会出现程序异常;

from pythonds.basic.stack import Stack

【网页提交注意点】:提交的时候要把用到的数据结构的定义先放上去


1.有效的括号
思路:从左到右扫描括号串,最新打开的左括号应该匹配最先遇到的右括号,最早打开的左括号应该匹配最后一个右括号,次序反转;

  • 生成一个空栈
  • 从左到右依次扫描取括号
  • 扫描到当前的符号看是什么括号,左括号入栈,匹配的右括号则出栈,不匹配则失败;
class Stack:
    def __init__(self):
        self.items = []

    def isEmpty(self):
        return 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 size(self):
        return len(self.items)
        
s = input()

def matches(open,close):
    opens="({[
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值