删除字符串中的所有相邻重复项

105 阅读1分钟

1047 删除字符串中的所有相邻重复项

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;
    }
}