首页 > 代码库 > [Leetcode] 20 - Valid Parentheses
[Leetcode] 20 - Valid Parentheses
原题链接: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(); } };
[Leetcode] 20 - Valid Parentheses
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。