您的位置:首页 > 其它

LeetCode Valid Parentheses

2015-02-08 12:44 176 查看
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.
题意:括号匹配问题。
思路:利用栈来处理,判断右括号的情况

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

        for (int i = 0; i < s.size(); i++) {
            if (s[i] == ')' || s[i] == ']' || s[i] == '}') {
                if (st.empty())
                    return false;
                else {
                    char tmp = st.top();
                    st.pop();
                    if ((tmp == '(' && s[i] != ')') || (tmp == '[' && s[i] != ']') || (tmp == '{' && s[i] != '}'))
                        return false;

                }
            } else st.push(s[i]);
        }

        if (!st.empty())
            return false;
        return true;
    }
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: