题解 | #括号序列#
括号序列
http://www.nowcoder.com/practice/37548e94a270412c8b9fb85643c8ccc2
class Solution { public: /** * * @param s string字符串 * @return bool布尔型 */ bool isValid(string s) { // write code here int len = s.size(); stack<char> st; for (int i = 0; i < len; ++i) { if (s[i] == '(' || s[i] =='{' || s[i] == '[') { // 若为左括号,放入栈中 st.push(s[i]); } else { // 右括号 if (!st.empty()) { // 栈不为空 if ((s[i] == ')' && st.top() == '(') || (s[i] == ']' && st.top() == '[') || (s[i] == '}' && st.top() == '{') ) // 若匹配, 弹出栈顶 st.pop(); else { // 不匹配,返回 return false; } } else // 不匹配,返回 return false; } } return st.empty(); // 栈为空,则匹配 } };