leetcode 每日一题 20. 有效的括号

Posted nil_f

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了leetcode 每日一题 20. 有效的括号相关的知识,希望对你有一定的参考价值。

思路:

由于括号一般是成对出现,可以利用栈后进先出的特征。将字符串字符按顺序压入栈中,压入过程中如果遇到右括号时,推出栈顶元素,判断当前要压入的右括号是否和栈顶元素是一对,如果是则继续下一字符的压入判断操作。如果不是,直接返回False。当压入过程结束后,如果栈内为空则返回True,否则返回False。

例如:

  {  [  (  )  ]  (  )  }  (  )

 

代码:

class Solution(object):
    def isValid(self, s):
        stack = []
        mapping = {")": "(", "}": "{", "]": "["}
        for char in s:
            if char in mapping:
                top_element = stack.pop() if stack else \'#\'
                if mapping[char] != top_element:
                    return False
            else:
                stack.append(char)
        return not stack

 

 

以上是关于leetcode 每日一题 20. 有效的括号的主要内容,如果未能解决你的问题,请参考以下文章

Java算法 每日一题 编号20:有效的括号

Java算法 每日一题 编号20:有效的括号

LeetCode每日一题

《LeetCode之每日一题》:63.有效的括号

LeetCode每日一题2020.7.04 32. 最长有效括号

《LeetCode之每日一题》:147.有效的括号字符串