LeetCode 20. Valid Parentheses

真是笨,一直没思路... 

看了别人的题解发现用一个栈来保存前括号,碰到后括号弹出即可。

做题时不要急着代码,先思考下是否有数据结构能去模拟它。


代码:

class Solution 
{
public:
    bool isValid(string s) 
    {
        stack<char> ss;

        for (auto it = s.begin(); it != s.end(); ++ it)
        {
            if (*it=='(' || *it=='[' || *it=='{')
            {
                ss.push(*it);
            } else if ((ss.empty()==false)
              && ((*it==')'&&ss.top()=='(') || (*it==']'&&ss.top()=='[') || (*it=='}'&&ss.top()=='{')))
            {
                ss.pop();
            } else 
            {
                return false;
            }
        }

        return ss.empty();
    }
};



你可能感兴趣的:(LeetCode,C++)