这个问题太适合用栈来解决了,我一看到这个题目的时候想到了栈,但是以往用栈得写一个结构体,结果是我学的太死板了。
bool isValid(char* s) {
char stack[1000000];
int top=-1;
int len=0;
while(s[len]) {
if (s[len]==')') {
if (top>=0 && stack[top]=='(')
top--;
else
return false;
}
else if (s[len]==']') {
if (top>=0 && stack[top]=='[')
top--;
else
return false;
}
else if (s[len]=='}') {
if (top>=0 && stack[top]=='{')
top--;
else
return false;
}
else {
top=top+1;
stack[top]=s[len];
}
len++;
}
return top==-1;
}