[([([(]]]))) 这个是判断不出来的

来源:4-4 栈应用括号匹配二

张超q

2020-04-08 15:31

 //存在的

    MyStack<char> *pStack = new MyStack<char>(100);

    

    //需要的

    MyStack<char> *pNeedStack = new MyStack<char>(100);

    

    

     char str[] = "[([([(]]])))";

   // char str[] = "[()[()]]";

 

    for(int i=0;i<strlen(str);i++){

        char t = str[i];

        if(t == '('){

            pNeedStack->push(')');

         }else if(t == '['){

           pNeedStack->push(']');

         }else{

             pStack->push(t);

         }

    }


    if(pNeedStack->stackLength() == pStack->stackLength()){

          cout << "字符串匹配" << endl;

    }else{

           cout << "字符串不匹配" << endl;

    }



写回答 关注

1回答

  • 慕粉1908374906
    2020-10-06 16:12:40

    可能老师没讲清楚题意,我理解是 这个括号匹配是按 运算时候的括号 来要求的,即  成对的括号内才能套着成对的括号。比如【7+(6+(2+【1+2】))】 而不能 【(】【)】 这样就无法运算了 

数据结构探险—栈篇

栈,先入后出(FILO),带领大家体会栈这种数据结构的美妙

62733 学习 · 102 问题

查看课程

相似问题