首页 > 代码库 > 20. Valid Parentheses

20. Valid Parentheses

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.

 

至少见过3次这个题目了。栈的简单应用

class Solution {public:    bool judge(char a, char b) {        if (a == ( && b == )) return true;        else if (a == [ && b == ]) return true;        else if (a == { && b == }) return true;        return false;    }    bool isValid(string s) {        stack <char> st;        char c;        for (int i = 0; i < s.size(); ++i) {            if (!st.empty()) {                c = st.top();                    if (judge(c, s[i])) st.pop();                else st.push(s[i]);            }            else st.push(s[i]);        }        if (st.empty()) return true;        return false;    }};

 

20. Valid Parentheses