LeetCode20.Valid parentheses
Given a string containing just the characters '('
, ')'
, '{'
, '}'
, '['
and ']'
, determine if the input string is valid.
The brackets must close in the correct order, "()"
and "()[]{}"
are all valid but "(]"
and "([)]"
are not.
合法的字符串其实和我们平时的要求是一样的,只是不分括号的等级,由于以前写过计算器,对这个括号的使用有一点灵感,就是用栈来完成匹配。
当遇到左括号时就压栈,遇到右括号时查看栈顶的符号是否与其匹配,不匹配时这整个字符串肯定不合法,如果匹配的话,就将栈顶的匹配括号弹出,以便后面的查看。当遇到右括号而栈为空时,显然是不合法的。
完成整个字符串的遍历之后,应当查看栈是否为空,不为空时,说明还有未被匹配到的左括号,肯定是不合法的。