20. Valid Parentheses--合法的括号组合(使用stack)

来源:互联网 发布:高晓松 阿里 知乎 编辑:程序博客网 时间:2024/05/21 23:34
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) {        stack<char> mystack;        for(int i = 0; i < s.size(); ++i){            if(s[i]=='('||s[i]=='['||s[i]=='{')                mystack.push(s[i]);            else{                if(mystack.size()==0) return false;                char tmp = mystack.top();                if((tmp=='('&&s[i]==')')||(tmp=='['&&s[i]==']')||(tmp=='{'&&s[i]=='}'))                    mystack.pop();                else return false;            }         }        if(mystack.size()>0)            return false;        return true;    }};


0 0