校招刷题群
高效刷题 迎战校招
校招精选试题
近年面笔经面经群内分享
Java刷题群 前端刷题群 产品运营群
首页 > UI专业知识 > 色彩
题目

设计一个判别表达式中左、右括号是否配对出现的算法,采用()数据结构最佳

A.线性表的顺序存储结构

B.队列

C.线性表的链式存储结构

D.栈

解答

参考答案:D.

问题:有一个数组里面存放了很多的字符,需要判断这一串字符里面的括号是否匹配。
解:
    new一个栈叫stack
    存放字符的数组叫 ch
    boolean flag 是否是匹配的标示位
     思路如下:
     ①for循环需要判断的一堆字符
     ②依次每个字符判断是否为左括号,如果是,则入栈。
     ③如果是右括号,先判断stack是否为空,如果为空,则说明没有和他匹配的左括号。程序直接return结束算法。
        如果stack不为空(说明有和他匹配的左括号),则将stack出栈。

     ④for循环完毕,最后看stack是否为空。如果为空则说明左右括号都是成对出现,如果不为空则说明不匹配。

    for(int i=0;i<ch.length;i++){
          if(ch[i] == '(' ){
               stack.push(ch[i]);

          }

          if(ch[i] == ')'){
              if(stack.isEmpty()){
                   flag = false;

                   return ;

               }else{
                   stack.pop();  

               }
          }
     }
     if(stack.isEmpty()){
        flag = true;

     }

C 1条回复 评论
飙车去旅行

比之前听的课更好懂

发表于 2021-09-11 13:15:00
0 0