栈1

作者: Arsenal4ever | 来源:发表于2020-01-06 22:15 被阅读0次

什么时候适合使用栈?涉及之前的操作,或者之前的操作无效时候、、、

leetcode 20 括号匹配!!!

总结:解题关键有两点

  1. 用栈
  2. 什么时候入栈出栈用 key 和 value 标识会清除太多,不然一直都绕不过弯来!!!
class Solution(object):
    def isValid(self, s):
        """
        :type s: str
        :rtype: bool
        """
        d = {"(":")", "[":"]", "{": "}"}
        stack = []
        for item in s:
            if item in d:
                key = item
                stack.append(key)
            else:
                value = item
                key = stack.pop() if stack else None
                if not key:
                    return False
                if value != d[key]:
                    return False
        return True if not stack else False

经验:栈结合新变量使用,思路会更加清晰!

leetcode 71 简化路径!!!

简化 unix 路径
思路:先把所有斜杠去掉。栈之状态机,一共有三种情况:什么时候入栈,什么时候不动,什么时候出栈,思考好了,结果就出来了!!!

class Solution(object):
    def simplifyPath(self, path):
        """
        :type path: str
        :rtype: str
        """
        stack = []
        temp = path.split("/")
        for s in temp:
            if s == ".." and stack:
                stack.pop()
            elif s == "." or s == "" or (s == ".." and not stack):
                continue
            else:
                stack.append(s)
        return "/" + "/".join(stack)

相关文章

  • 递归累加数组

    入栈 5入栈 4入栈 3入栈 2入栈 1出栈 [1 0]出栈 [2 1 0]出栈 [3 2 1 0]出栈 [4 3...

  • 栈的逻辑结构和存储结构

    main()进栈s(1)进栈s(0)进栈 s(0)出栈s(1)出栈main()出栈 顺序栈 一个数组 + 指向栈顶...

  • 栈1

    栈 什么时候适合使用栈?涉及之前的操作,或者之前的操作无效时候、、、 leetcode 20 括号匹配!!! 总结...

  • struts2值栈

    1.对象栈(root栈) 2.Map栈。

  • 5.栈Stack

    目录:1.栈的定义2.栈的图解3.栈定义操作4.栈的实现 1. 栈的定义 2. 栈的图解 3. "栈"定义的操作 ...

  • Swift 单调递减栈解决 K数 问题

    什么是单调栈? 1.单调递增栈: 栈顶 到 栈底 数据从小到大,遇到比栈顶大的数就弹栈 数据: [2, 1, 3,...

  • 数据结构之 栈

    栈结构 链式栈 一.栈结构体 1构建空栈 2栈置空 3判断栈空 4获取栈顶 5入栈 6出栈 7便利栈 二.链式栈 ...

  • 9.两个栈实现队列

    思路: 栈是先进后出的数据结构,把1个栈A的内容出栈后放入另1个栈B的话,栈B的出栈顺序从逻辑上看就是栈A的入栈顺...

  • 用递归函数和栈操作逆序栈

    一个栈依次压入1、2、3、4、5,那么从栈顶到栈底分别为5、4、3、2、1。将这个栈转置后,从栈顶到栈底为1、2、...

  • 【数据结构】【C#】006-栈:💫链栈

    C#数据结构:链栈 1、自定义链栈结构: 链栈节点类 链栈类 链栈测试用例: 输出结果: 注意: 1、链栈即采用链...

网友评论

    本文标题:栈1

    本文链接:https://www.haomeiwen.com/subject/fmzhactx.html