题解 | #点击消除#
点击消除
http://www.nowcoder.com/practice/8d3643ec29654cf8908b5cf3a0479fd5
和匹配括号类似,先将字符入栈,若字符与栈中字符匹配,则出栈,否则入栈 最后打印栈中剩余元素
import java.util.*;
public class Main{
public static void main(String args[]){
Scanner sc=new Scanner(System.in);
Stack<Character> stack=new Stack<>();
while(sc.hasNext()){
String s=sc.nextLine();
char[] arr=s.toCharArray();
for(int i=0;i<arr.length;i++){
if(stack.isEmpty()){
stack.push(arr[i]);
}
else if(arr[i]==stack.peek() && !stack.isEmpty()){
stack.pop();
}else{
stack.push(arr[i]);
}
}
//利用StringBuilder 输出栈中元素,若栈为空,打印0,否则,存入StringBuilder并反转输出
StringBuilder sb=new StringBuilder();
if(!stack.isEmpty()){
while(!stack.isEmpty()){
sb.append(stack.pop());
}
System.out.print(sb.reverse());
}else{
System.out.print(0);
}
}
}
}