[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<char> 进行配对即可。

class Solution {
public:
    bool isValid(string s) {
        int len = s.size();
        if(len==0)
            return true;
        else if(s[0]==')'|| s[0]==']'|| s[0]=='}')
            return false;

        stack<char> st;
        for(int i=0;i<len;i++){
            if(st.empty()){
                st.push(s[i]);
            }else if((s[i]=='}' && st.top()!='{')||(s[i]==')' && st.top()!='(')||(s[i]==']' && st.top()!='[')){
                return false;
            }else if((s[i]=='}' && st.top()=='{')||(s[i]==')' && st.top()=='(')||(s[i]==']' && st.top()=='[')){
                st.pop();
            }else{
                st.push(s[i]);
            }
        }//end for
        if(st.empty())
            return true;
        else
            return false;
    }//end func
    
};
原文地址:https://www.cnblogs.com/Xylophone/p/3934565.html