有效的括号

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

这个题目搞得我有点头疼。

思路: 遍历串 S,遇见左括号进栈。遇见右括号就检查是否是栈顶元素的右括号。

注意点:样例有多余的右括号的时候,例如“{ ] }”,“ ] ”。

原文地址:https://www.cnblogs.com/stul/p/10682244.html