解题思路:
使用栈,入栈前,判断当前元素是否与栈顶元素相等,如果相等,出栈,如果不相等,入栈.
public static void main(String[] args) {
String str="abbaca";
String s = removeDuplicates(str);
System.out.println(s);
}
public static String removeDuplicates(String S) {
Stack<Character> stack=new Stack<>();
stack.push(S.charAt(0));
for(int i=1;i< S.length();i++){
char c = S.charAt(i);
if(!stack.isEmpty()){
Character peek = stack.peek();
if(peek !=c){
stack.push(c);
}else{
stack.pop();
}
}else{
stack.push(c);
}
}
String stackStr = getStackStr(stack);
return stackStr;
}
public static String getStackStr(Stack stack){
StringBuilder sb=new StringBuilder();
while(!stack.isEmpty()){
Object peek = stack.peek();
sb.append(peek);
stack.pop();
}
return sb.reverse().toString();
}