考察知识点:

题目分析:

 当栈中有元素并且栈顶元素现在所访问的字符相匹配即可将栈顶元素出栈,否则将这个字符入栈。在访问完所有的字符后,如果栈中还剩下几个元素,那么说明没有匹配成功,否则说明匹配成功。

所用编程语言: C++

class Solution {
  public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     *
     * @param s string字符串
     * @return bool布尔型
     */
    bool is_valid_cow_communication(string s) {
        // write code here
        int size = s.size();
        if (!size) return false;
        stack<char> stk;
        stk.push(s[0]);
        for (int i = 1; i < size; i++) {
            if (!stk.empty()) {
                if (stk.top() == '(' && s[i] == ')'
                || stk.top() == '{' && s[i] == '}'
                || stk.top() == '[' && s[i] == ']'
                ) {
                    stk.pop();
                    continue;
                }
            }
            stk.push(s[i]);
        }
        if (stk.empty()) return true;
        return false;
    }
};