天天看點

leetcode---Valid Parentheses

leetcode之四:https://leetcode.com/problems/valid-parentheses/  

求有效的括号比對:

class Solution {
public:
    bool isValid(string s) {
        stack<char> str;
        for(int i = 0 ; i < s.size();i++)
        {
            if(s[i] == '(' || s[i] == '{' || s[i] == '[')
                str.push(s[i]);
            else if(s[i] == ')' )
            {
                if<span style="color:#ff0000;">(!str.empty()</span> && str.top() == '(')//判斷棧是否為空很重要,比如輸入為“]”則棧為空。
                    str.pop();
                else
                    return false;
            }
            else if(s[i] == ']')
            {
                if(!str.empty() && str.top() == '[')
                   str.pop();
                else
                   return false;
            }
            else if(s[i] == '}')
            {
                if(!str.empty() && str.top() == '{')
                   str.pop();
                else
                   return false;
            }
            
        }
        return str.empty();
    }
};