20. Valid Parentheses

2018-04-06  本文已影响0人  weego

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();
}
上一篇 下一篇

猜你喜欢

热点阅读