首页 > 代码库 > 【LeetCode】Valid Parentheses

【LeetCode】Valid Parentheses

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.

 

使用栈,每匹配一对括号就出栈。最后栈要为空才完全匹配。

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

技术分享

【LeetCode】Valid Parentheses