[LeetCode] Valid Parentheses

Posted immjc

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[LeetCode] 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.

判断字符串中括号的有效性。

这道题使用stack来存储括号,遍历字符串中的括号。

如果遇到右括号

  这时如果stack为空,则立即返回false。

  如果这时stack中右匹配的左括号,将stack中左括号弹出stack。

  如果这时stack中没有匹配的左括号,返回false。

如果遇到左括号

  将其压入stack中。

最后判断

  如果stack中存在元素,则表示还有未匹配的左括号,返回false

  如果stack不存在元素,则表示所有括号都已匹配成功,返回true

class Solution {
public:
    bool isValid(string s) {
        stack<char> stk;
        for (int i = 0; i != s.size(); i++) {
            if (s[i] == ) || s[i] == } || s[i] == ]) {
                if (stk.empty())
                    return false;
                else if ((s[i] == ) && stk.top() == () || (s[i] == } && stk.top() == {) || (s[i] == ] && stk.top() == [))
                    stk.pop();
                else
                    return false;
            }
            else
                stk.push(s[i]);
        }
        if (stk.empty())
            return true;
        else
            return false;
    }
};
// 3 ms

 

以上是关于[LeetCode] Valid Parentheses的主要内容,如果未能解决你的问题,请参考以下文章

#Leetcode# 20.Valid Parentheses

LeetCode Valid Word Square

leetcode20. Valid Parentheses

LeetCode-Valid Palindrome

LeetCode 242. Valid Anagram

leetcode 242. Valid Anagram