早教吧 育儿知识 作业答案 考试题库 百科 知识分享

JAVA括号配对问题(要用栈来解决)要求输入一行字符,输出配对的括号和不配对的括号的位置例如:输入: (a+b))( 输出: 左边第1位括号和左边第5位括号对应,左边第6位括号没对应左

题目详情
JAVA括号配对问题(要用栈来解决)
要求输入一行字符,输出配对的括号和不配对的括号的位置
例如:输入: (a+b))(
输出: 左边第1位括号和左边第5位括号对应,左边第6位括号没对应左括号,左边第7位没对应右括号.
求各位大虾帮忙写出完整JAVA程序代码(相信不难),本人有赏
括号配对问题
▼优质解答
答案和解析
import java.util.Stack;
/**
 * 要求输入一行字符,输出配对的括号和不配对的括号的位置
 * 例如:
 *   输入:  (a+b))(
 *   输出: 左边第1位括号和左边第5位括号对应,左边第6位括号没对应左括号,左边第7位没对应右括号.
 */
public class BaiduHelper {
 
 public static void floatCloud(String toDeal){
  Stack stack = new Stack();
  stack.add(0);
  for(int i=0; i   char c = toDeal.charAt(i);
   if(c=='('){
    stack.add(i+1);
   }else if(c==')'){
    int index = stack.pop();
    if(index>0){
     System.out.println("左边第"+index+"位括号和左边第"+(i+1)+"位括号对应");
    }else if(index==0){
     System.out.println("左边第"+(i+1)+"位括号没对应左括号");
     stack.add(0);
    }
   }
  }
  if(stack!=null){
   while(!stack.isEmpty()){
    int index = stack.pop();
    if(index!=0)
     System.out.println("左边第"+index+"位括号没对应右括号");
   }
  }
 }
 
 
 public static void main(String[] args){
  floatCloud("(a+b))(");
  System.out.println();
  
  floatCloud("(a+(b))))(");
  System.out.println();
  
  floatCloud("(a+b))())(");
  System.out.println();
 }
}
看了 JAVA括号配对问题(要用栈...的网友还看了以下:

物质的性质决定物质的用途,下列物质的用途主要由其化学性质决定的是()A、用氮气保存食品B、用氦气填  2020-05-13 …

三年级同学通过小组选出8名同学进行最后的围棋决赛,决赛采用淘汰赛,要决出冠、亚、季军一共要赛出多少  2020-05-13 …

在线求指导:对反应方向起决定作用对反应方向起决定作用的因素的判断不正确的是[]A.有时焓变对反应方  2020-05-17 …

面向特定应用的决策支持系统属于A.专用决策支持系统B.通用决策支持系统C.决策支持系统生成器D.决  2020-05-23 …

再让的活动中,某社区决定利用900盆菊花和810盆太阳花搭配a,b两种园艺造型共100个摆在社区.  2020-06-07 …

从小见大1.本文记叙的顺序是()A.顺叙B.倒叙C.插叙3.阅读五至八段,回答母亲所做的决定是她为  2020-06-15 …

某园林部门决定利用现有的349盆甲种花卉某园林部门决定利用现有的349盆甲种花卉和295盆乙种花卉  2020-06-19 …

有18人参加“春苗杯”乒乓球单打比赛.(1)如果采用单循环制,决定出冠军和亚军,需要比赛多少场?(  2020-06-25 …

为解决二倍体普通牡蛎在夏季因产卵二出现肉质下降的问题,人们培育出三倍体牡蛎.利用普通牡蛎培育三倍体  2020-06-28 …

为解决二倍体普通牡蛎在夏季因产卵二出现肉质下降的问题,人们培育出三倍体牡蛎.利用普通牡蛎培育三倍体  2020-07-01 …