1047. Remove All Adjacent Duplicates in String

1047. Remove All Adjacent Duplicates In String #

题目 #

  • 给出由小写字母组成的字符串 S, 重复项删除操作会选择两个相邻且相同的字母,并删除它们。

  • S 上反复执行重复项删除操作,直至无法继续删除。

  • 在完成所有重复项删除操作后返回最终的字符串。

思路 #

代码 #

class Solution {
    public String removeDuplicates(String s) {
        Stack<Character> stack = new Stack<>();
        
        for (int i=0; i<s.length(); i++) {
            char item = s.charAt(i);
            if (stack.empty() == false && stack.peek() == item) stack.pop();
            else stack.push(item);
        }
        
        char[] unique = new char[stack.size()];
        for (int i=unique.length-1; i>=0; i--) unique[i] = stack.pop();
        
        return String.valueOf(unique);
    }
}