标签:
原题链接: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
标签:
原文地址:http://blog.csdn.net/algorithmengine/article/details/43055971