(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<Character> 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();
    }
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。