LeetCode 844 比较含退格的字符串

LeetCode 844 比较含退格的字符串

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

重构字符串

执行用时:2 ms, 在所有 Java 提交中击败了74.87%的用户
内存消耗:36.2 MB, 在所有 Java 提交中击败了99.88%的用户

class Solution {
    public boolean backspaceCompare(String S, String T) {
        //一次循环消除所有'#'
        StringBuffer s = new StringBuffer(S);
        StringBuffer t = new StringBuffer(T);
        int curr = 0;
        while(curr<s.length()) {
            if(s.charAt(curr)=='#') {
                if(curr==0) {
                    s.delete(curr, curr+1);
                }
                else {
                    s.delete(curr-1, curr+1);
                    curr--;
                }
            }
            else {
                curr++;
            }
        }

        curr = 0;
        while(curr<t.length()) {
            if(t.charAt(curr)=='#') {
                if(curr==0) {
                    t.delete(curr, curr+1);
                }
                else {
                    t.delete(curr-1, curr+1);
                    curr--;
                }
            }
            else {
                curr++;
            }
        }

        if(s.length()!=t.length()) {
            return false;
        }
        for(int i=0; i<s.length(); i++) {
            if(s.charAt(i)!=t.charAt(i)) {
                return false;
            }
        }

        return true;
    }
}
上一篇:css 币种与价格的底部对齐


下一篇:30 Day Challenge Day 7 | Hackerrank: Tree: Huffman Decoding