有效的括号序列-LintCode

来源:互联网 发布:linux安装谷歌浏览器 编辑:程序博客网 时间:2024/06/04 19:13

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

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

#ifndef C423_H#define C423_H#include<iostream>#include<string>#include<stack>#include<map>using namespace std;class Solution {public:    /*    * @param s: A string    * @return: whether the string is a valid parentheses    */    bool isValidParentheses(string &s) {        // write your code here        if (s.empty())            return false;        int len = s.size();        if (len % 2 == 1)            return false;        map<char, char> table{ { '(', ')' }, { '{', '}' }, { '[', ']' } };        stack<char> brackets;        for (int i = 0; i < len; ++i)        {            if (brackets.empty())                brackets.push(s[i]);            else            {                if (table[brackets.top()] == s[i])                    brackets.pop();                else                    brackets.push(s[i]);            }        }        if (brackets.empty())            return true;        else            return false;    }};#endif
原创粉丝点击