1047. 删除字符串中的所有相邻重复项
思路:
使用栈,遍历s字符串一个个放进栈中,如果栈顶元素和即将放进的元素相等,则不将此元素放入栈中且删除栈顶元素即可
代码实现:
class Solution {
public String removeDuplicates(String s) {
Stack<Character> stack = new Stack<>();
for (int i = 0; i < s.length(); i++) {
if (!stack.isEmpty()) {
if (stack.peek() == s.charAt(i)) {
stack.pop();
} else {
stack.push(s.charAt(i));
}
} else {
stack.push(s.charAt(i));
}
}
StringBuilder sb = new StringBuilder();
while (!stack.isEmpty()) {
sb.append(stack.pop());
}
StringBuilder res = sb.reverse();
return res.toString();
}
}