美文网首页
20. Valid Parentheses

20. Valid Parentheses

作者: weego | 来源:发表于2018-04-06 00:09 被阅读0次

Description

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.

Solution

使用栈来处理最近匹配问题

bool isValid(string s) {
    map<char, char> parenthesesMap{{'(', ')'}, {'[', ']'}, {'{', '}'}};
    stack<char> st;
    for (int i = 0; i < s.length(); ++i) {
        if (s[i] == '(' || s[i] == '[' || s[i] == '{') {
            st.push(s[i]);
        } else {
            if (st.empty() || parenthesesMap[st.top()] != s[i]) {
                return false;
            }
            st.pop();
        }
    }
    return st.empty();
}

相关文章

网友评论

      本文标题:20. Valid Parentheses

      本文链接:https://www.haomeiwen.com/subject/tkljhftx.html