[Leetcode] 20 - Valid Parentheses

来源:互联网 发布:淘宝超级运动会几天 编辑:程序博客网 时间:2024/04/29 17:15

原题链接:https://oj.leetcode.com/problems/valid-parentheses/


检查是否是有效的括号序列。这里的解法是维护一个栈,如果是左括号,则push到栈中,如果是右括号,则检查栈顶的符号,如果是对应的做括号,则将之弹出。否则,则直接返回false。当字符串扫描到尾时,则检查栈是否是空,如果是空,则说明所有的括号都match上了。


class Solution {public:    bool isValid(string s) {        stack<char> stk;                int i = 0;        while (i < s.size()) {            char c = s[i];            switch (c) {                case '(':                case '[':                case '{':                    stk.push(c);                    ++i;                    break;                case ')':                    if (!stk.empty() && stk.top() == '(') {                        stk.pop();                        ++i;                        break;                    } else {                        return false;                    }                case ']':                    if (!stk.empty() && stk.top() == '[') {                        stk.pop();                        ++i;                        break;                    } else {                        return false;                    }                case '}':                    if (!stk.empty() && stk.top() == '{') {                        stk.pop();                        ++i;                        break;                    } else {                        return false;                    }            }        }                return stk.empty();    }};


0 0
原创粉丝点击