使用入栈出栈操作,当入栈元素与栈顶元素相同则将栈顶元素出栈,例如遇到左括号‘(’,‘[’,’{’,则将其入栈等待配对出栈,遇到右括号若与栈顶元素匹配,则出栈。
bool isValid(char * s){
int len = strlen(s);
if(len == 0) return true;
char my_stack[len];
int top = -1;
if(len % 2 != 0)
return false;
for(int i = 0;i<len;i++)
{
if(s[i] == '('||s[i] == '{'||s[i] == '[')
my_stack[++top] = s[i];
else if(top == -1)
return false;
else if(s[i] == my_stack[top]+1 || s[i] == my_stack[top]+2)
my_stack[top--] = 0;
else
return false;
}
return top == -1;
}