class Solution {
public String removeDuplicates(String s) {
ArrayDeque<Character> stack = new ArrayDeque<>();
char ch;
//当栈为空或者栈顶元素不等于字符串将要压栈的字符,则把该字符压入栈中,反之,则弹出栈顶元素,进行消除,最后栈中剩下元素便是删除所有重复项后的字符串
for(int i = 0; i < s.length(); i++) {
ch = s.charAt(i);
if(stack.isEmpty() || stack.peek() != ch) {
stack.push(ch);
}else {
stack.pop();
}
}
String str = "";
while(!stack.isEmpty()) {
str = stack.pop() + str;
}
return str;
}
}