有效的括号序列

来源:互联网 发布:阿里云代理服务器 编辑:程序博客网 时间:2024/05/17 20:26

给定一个字符串所表示的括号序列,包含以下字符: '(', ')', '{', '}','[' and ']', 判定是否是有效的括号序列。

样例

括号必须依照 "()" 顺序表示, "()[]{}" 是有效的括号,但 "([)]"则是无效的括号。

挑战

O(n)的时间,n为括号的个数

class Solution {public:    /**     * @param s A string     * @return whether the string is a valid parentheses     */    bool isValidParentheses(string& s) {        // Write your code here        int n = s.length();        stack<char> buf;        for (int i = 0; i < n; i++)        {            if (s[i] == '(' || s[i] == '{' || s[i] == '[')            {                buf.push(s[i]);            }            else if (s[i] == ')')            {                if (!buf.empty() && buf.top() == '(')                {                    buf.pop();                }                else                {                    return false;                }            }            else if (s[i] == '}')            {                if (!buf.empty() && buf.top() == '{')                {                    buf.pop();                }                else                {                    return false;                }            }            else            {                if (!buf.empty() && buf.top() == '[')                {                    buf.pop();                }                else                {                    return false;                }            }        }        return buf.empty();    }};


0 0
原创粉丝点击