思路分析:
1.先将输入的字串转成字符数组
2.创建一个栈
3.遍历字符数组
4.如果栈为空,或者当前字符和栈顶不相等,消除不了,将字符入栈
5.如果当前字符和栈顶相等,则将栈顶出栈
6.然后继续遍历下一个,直到遍历完数组
7.遍历完后,判断栈是否为空,如果为空输出0
8.将栈中的元素全部弹出组成一个字符串并输出,注意栈的弹出顺序和我们要输出的是相反的,所以我们可以使res=stack.pop()+res,这样就是我们要的结果啦
import java.util.Scanner;
import java.util.Stack;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        // 注意 hasNext 和 hasNextLine 的区别
       //获取输入的字符串
        String str=in.next();
        solve(str);
       
    }
    public static void solve(String str){
         //将字符串编程字符数组
        char[] chars=str.toCharArray();
        //创建一个栈
        Stack<String> stack=new Stack<>();
        int i=0;//字符数组的索引
        String cha;
       while(i<chars.length){
           cha=chars[i]+"";
           if(stack.isEmpty() ||!(cha.equals(stack.peek()))){
               //如果栈为空或去栈顶元素不相等,入栈
               stack.push(cha);
           }else{
               //将栈顶出栈
               stack.pop();
           }
              i++;
              }
        //判断栈是否为空,为空输出0
        if(stack.isEmpty()){
            System.out.println(0);
            return;
        }
        String res="";
       while(!stack.isEmpty()){
           res=stack.pop()+res;
          
       } 
        System.out.println(res);
        
      
    }
              }