1.题目描述
2.核心思想
1、用到了栈的思想,实际上就是匹配一下吗
2、图解:
3.代码实现
char maps(char c)//建立一个表,就是和栈顶元素去匹配,我是这样做的,你也可利用相减来做哦
{
if(c==')') return '(';
if(c=='}') return '{';
if(c==']') return '[';
return 0;
}
bool isValid(char * s){
int l1=strlen(s);
if(l1%2==1)//奇数肯定不对
{
return false;
}
char stack[l1+1];//栈
int top=0;
for(int i=0;i<l1;i++)
{
if(maps(s[i]))//左括号,有的萌新可能看不懂,如果函数调用返回了0,为假,if不执行
{
if(top==0||stack[top-1]!=maps(s[i]))//top==0一定要写在前面,啥时候top