(Leetcode 刷题) 比较含退格的字符串

题目描述

给定 S 和 T 两个字符串,当它们分别被输入到空白的文本编辑器后,判断二者是否相等,并返回结果。 # 代表退格字符
注意:如果对空文本输入退格字符,文本继续为空。
844. 比较含退格的字符串

解法 栈

字符依次入栈,如果读取到的字符为 # ,栈执行一次出栈操作,不是 # , 将其入栈。

class Solution {
    public boolean backspaceCompare(String S, String T) {
        String a1 = helper(S);
        String a2 = helper(T);
        return a1.equals(a2);
    }

    public String helper(String a){
        StringBuilder sb = new StringBuilder();
        LinkedList stack = new LinkedList<>();

        for(char ch : a.toCharArray()){
            if(ch != '#'){
                stack.push(ch);
            }
            if(!stack.isEmpty() && ch == '#'){
                stack.pop();
            }
        }

        while(!stack.isEmpty()){
            sb.append(stack.pop());
        }

        return sb.toString();
    }
}

你可能感兴趣的:((Leetcode 刷题) 比较含退格的字符串)