class Solution { public: /** * * @param s string字符串 * @return bool布尔型 */ //本体其实就是一个简单的栈的应用,大家不要把题目想的太复杂 bool isValid(string s) { // write code here char stack[10000];int top=-1; int lenth=s.size(); for(int i=0;i<lenth;i++) { if(top==-1)//如果栈为空那么直接入栈 { stack[++top]=s[i]; } else if(s[i]=='('||s[i]=='{'||s[i]=='[')//为左括号也直接入栈 { stack[++top]=s[i]; } else//当为右括号时需要判断此时栈顶元素是否与之对应 { if(s[i]==')') { if(top==-1||stack[top]!='(')//栈为空或者不对应则返回false,下同 return false; else { top--; } } else if(s[i]==']') { if(top==-1||stack[top]!='[') return false; else { top--; } } else{ if(top==-1||stack[top]!='{') return false; else top--; } } } if(top==-1)//如果最终栈空则返回true,否则返回false return true; else return false; } };