整理要求:
1、一个字符串
2、消除相邻的两个元素
3、打印最终元素
思路:把它看成入栈与出栈,如果相邻的两次入栈元素相同,就让栈顶元素出栈,最后打印结果。
publicstaticvoidmain(String[] args) { Stack<Character>stack=newStack(); Scannersc=newScanner(System.in); Stringstr=sc.nextLine(); for(inti=0;i<str.length();i++){ charch=str.charAt(i); if(stack.isEmpty() ||ch!=stack.peek()){ stack.push(ch); }elseif(ch==stack.peek()){ stack.pop(); } } Stringstr2=""; //输出if(stack.isEmpty()){//如果是空栈,打印0System.out.println(0); }else{//如果不是空栈,循环出栈,反转字符串while(!stack.isEmpty()){ str2+=stack.pop(); //将出栈的元素赋值给 str2,但这个str2是出栈的顺序,是反着的 } } Stringstr3=""; //使用str3来反转str2for(inti=str2.length()-1;i>=0;i--){ str3+=str2.charAt(i); } System.out.println(str3); //打印结果 }