【LeetCode020】Valid Parentheses

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

1、stack换成vector也是可以的;

2、其实更细化来讲,压栈压入的如果是右括号就可以直接终止了;

猜你喜欢

转载自blog.csdn.net/weixin_39458342/article/details/87017279
今日推荐