当测试数据为()时不知道为什么会进入第17行中然后直接返回false 实在想不明白希望有人能解释改正一下

程序目的是为了实现括号匹配为leetcode上的
当测试数据为()时不知道为什么会进入第17行中然后直接返回false
实在想不明白希望有人能解释帮忙改正一下

img

img


bool isValid(char * s){
    char text[10000],e;//text数组为栈
    int top=-1,i;//top为栈顶指针
    for(i=0;i<strlen(s);i++)
    {
        if(s[i]=='('||s[i]=='{'||s[i]=='[')//若s[i]为左括号,将栈顶指针加1后将其存入text中结束本次循环
        {
            top++;
            text[top]==s[i];
            continue;
        }
        if(top==-1){//若是s[i]为右括号但栈顶指针为-1说明栈空括号匹配失败返回false
            return false;
        }
        e=text[top];//栈顶元素出栈
        top--;//栈顶指针减1
        if(s[i]==')'&&e!='('){//若是)但栈顶元素不匹配则返回false 后面同理
            return false;
        } 
        if(s[i]=='}'&&e!='{')
        {
            return false;
        } 
        if(s[i]==']'&&e!='[')
        {
            return false;
        }
    }
    if(top!=-1){//遍历结束后若栈为空说明匹配成功否则匹配失败
        return false;
    }else{
        return true;
    }
}

应该就第10行啊,其他好像没啥问题。。。