LeetCode | Valid Parentheses

来源:互联网 发布:蓝宝石 知乎 编辑:程序博客网 时间:2024/06/05 05:51

Given a string containing just the characters ‘(‘, ‘)’, ‘{‘, ‘}’, ‘[’ and ‘]’, determine if the input string is valid.

The brackets must close in the correct order, “()” and “()[]{}” are all valid but “(]” and “([)]” are not.

如果为左括号则压入栈中,如果不为左括号则弹出栈顶判断是否成对

/************* LeetCode Runtime : 0ms;* last edited date:2015-10-14* .cpp*****/class Solution {public:    bool isValid(string s) {        stack<char> brackets;        for (size_t i = 0; i < s.size(); i++){            if (validLeft(s[i])){                brackets.push(s[i]);            }            else{                if (brackets.empty()) return false;                if (!validBrackets(brackets.top(), s[i]))                    return false;                brackets.pop();            }        }        return brackets.empty();    }    //判断是否为成对的括号    bool validBrackets(char l, char r){        switch (l){        case '(': if (r != ')') return false; break;        case '{': if (r != '}') return false; break;        case '[': if (r != ']') return false; break;        default: return false;        }        return true;    }    //判断是否为左括号    bool validLeft(char c){        return ((c == '(' || c == '{' || c == '[')) ? true : false;    }};
0 0