题解 | #点击消除#
点击消除
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();
}
}
