题解 | #括号序列#(用栈存储其匹配字符)
括号序列
http://www.nowcoder.com/practice/37548e94a270412c8b9fb85643c8ccc2
- 栈模拟,输入'[','{','('左括号符,在栈中存放其相反的右匹配符']'等 方便判断。
- 当输入是右括号符,该符号肯定与栈顶的符号匹配否则不构成括号序列。
class Solution { public: bool isValid(string s) { int len=s.size(); stack<char> st; for(int i=0;i<len;i++){ if(s[i]=='(')st.push(')'); else if(s[i]=='[')st.push(']'); else if(s[i]=='{')st.push('}'); else if(st.empty())return false; else if(st.top()!=s[i])return false; else st.pop(); } return st.empty(); } };