Stack

20. Valid Parentheses

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

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s