美文网首页
利用堆栈解决的问题

利用堆栈解决的问题

作者: 大脸猫猫脸大 | 来源:发表于2019-10-11 17:56 被阅读0次

    有效括号问题

    题目

    20. Valid Parentheses

    解法

    遇到左括号时push,遇到右括号pop

        def isValid(self, s):
            """
            :type s: str
            :rtype: bool
            """
            stack = []
            dict = {"]":"[", "}":"{", ")":"("}
            for char in s:
                if char in dict.values():
                    stack.append(char)
                elif char in dict.keys():
                    if stack == [] or dict[char] != stack.pop():
                        return False
                else:
                    return False
            return stack == []
    

    等待时间问题

    题目

    739. Daily Temperatures

    解法

    将天数指针存入堆栈中,当遇到更暖和的天气时,从堆栈中pop()。

        def dailyTemperatures(self, T):
            """
            :type T: List[int]
            :rtype: List[int]
            """
            ans = [0] * len(T)
            stack = []
            for i, t in enumerate(T):
              while stack and T[stack[-1]] < t:
                cur = stack.pop()
                ans[cur] = i - cur
              stack.append(i)
            return ans
    

    相关文章

      网友评论

          本文标题:利用堆栈解决的问题

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