题解 | #点击消除#

点击消除

https://www.nowcoder.com/practice/8d3643ec29654cf8908b5cf3a0479fd5

import java.util.ArrayDeque;
import java.util.Deque;
import java.util.Scanner;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner ss =new Scanner(System.in);
       String sss= ss.nextLine();
     Main main =new Main();
     System.out.print(main.removeAdjacentDuplicates(sss));

}
  public String removeAdjacentDuplicates(String s) {
    
       Deque<Character> stack = new ArrayDeque<>();
        
       for(char c : s.toCharArray()){
         if(!stack.isEmpty()&&stack.peek()==c){
            stack.pop();
         }
         else{
            stack.push(c);
         }
       }
       if(stack.isEmpty()){
        return "0";
       }
       

        StringBuilder result = new StringBuilder();
        while (!stack.isEmpty()) {
            result.append(stack.pop());
        }
        
        // 因为我们是从栈中弹出,所以需要反转结果
        return result.reverse().toString();
    }
}

全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务