
方法1 stack
class Solution {
public String removeDuplicates(String s) {
StringBuilder sb = new StringBuilder();
Stack<Character> stack = new Stack<>();
for (char c : s.toCharArray()) {
if (stack.isEmpty() || c != stack.peek()) {
stack.push(c);
} else {
stack.pop();
}
}
while (!stack.isEmpty()) {
sb.insert(0, stack.pop());
}
return sb.toString();
}
}
方法2 直接操作sb,replace
class Solution {
public String removeDuplicates(String s) {
StringBuilder sb = new StringBuilder();
for (char c : s.toCharArray()) {
if (sb.length() - 1 >= 0 && c == sb.charAt(sb.length() - 1)) {
sb.deleteCharAt(sb.length() - 1);
} else {
sb.append(c);
}
}
return sb.toString();
}
}