美文网首页
Valid Parentheses

Valid Parentheses

作者: 极速魔法 | 来源:发表于2017-06-27 16:43 被阅读2次

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.
//20

#include<iostream>
#include<stack>
#include<string>

using namespace std;


class Solution {
public:
    bool isValid(string s) {
            //{[()]}
        stack<char> auxiliary;
        for(int i=0;i<s.size();i++){
            if(s[i]=='{' ||s[i]=='[' ||s[i]=='('){
                auxiliary.push(s[i]);
            }else{
//left brackets<right brackets
                if(auxiliary.size()==0){
                    return false;
                }
                char top=auxiliary.top();
                auxiliary.pop();

                char match;

                switch(s[i]){
                    case'}':match='{';break;
                    case']':match='[';break;
                    case')':match='(';break;
                    default:break;
                }

                if(top !=match){
                    return false;
                }

            }
        }
//stack still exist nums,left brackets>right brackets
        if(auxiliary.size() !=0){
            return false;
        }
        return true;
    }
};

int main(){
    string s="[]{}()";
    cout<<Solution().isValid(s)<<endl;
}

相关文章

网友评论

      本文标题:Valid Parentheses

      本文链接:https://www.haomeiwen.com/subject/aypecxtx.html