题解 | #点击消除#
点击消除
http://www.nowcoder.com/practice/8d3643ec29654cf8908b5cf3a0479fd5
import java.util.*;
public class Main{
public static void main(String[] args){
Scanner scanner = new Scanner(System.in);
String str = scanner.nextLine();
Deque<Character> que = new LinkedList<Character>();
char[] arr = str.toCharArray();
for(char ch:arr){
if(que.isEmpty()){
que.add(ch);
}else{
if((char)que.getLast()==ch)
que.pollLast();
else
que.add(ch);
}
}
if(que.isEmpty())
System.out.println(0);
else{
String res = "";
while(!que.isEmpty()){
res+=que.poll();
}
System.out.println(res);
}
}
}
注意: 1.由于最后输出字符串,需要将栈中元素从前向后输出,使用双向队列可以满足这一要求 2.Deque一般使用LinkedList来实现该接口 add()队尾增加元素 poll()队首弹出元素并删除 getFirst() getLast() pollFirst() pollLast()