import java.util.Stack;
/**
* 要求输入一行字符,输出配对的括号和不配对的括号的位置
* 例如:
* 输入: (a+b))(
* 输出: 左边第1位括号和左边第5位括号对应,左边第6位括号没对应左括号,左边第7位没对应右括号。
*/
public class BaiduHelper {
public static void floatCloud(String toDeal){
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(); } }
这个确实不难,可是本人不会。