0844. Backspace String Compare

0844. Backspace String Compare #

题目 #

  • 给定 st 两个字符串,当它们分别被输入到空白的文本编辑器后,如果两者相等,返回 true# 代表退格字符。
  • 对空文本输入退格字符,文本继续为空。

思路 #

模拟 #

代码 #

模拟 #

class Solution {
    public boolean backspaceCompare(String s, String t) {
        int ptrS = s.length() - 1, ptrT = t.length() - 1;
        int cntS = 0, cntT = 0;
        while (ptrS >= 0 && ptrT >= 0) {
            while (ptrS >= 0) {
                if (s.charAt(ptrS) == '#') { cntS++; ptrS--; }
                else if (cntS > 0) { cntS--; ptrS--; }
                else break;
            }
            while (ptrT >= 0) {
                if (t.charAt(ptrT) == '#') { cntT+=; ptrT--; }
                else if (cntT > 0) { cntT--; ptrT--; }
                else break;
            }
            if (ptrS > -1 && ptrT > -1) {
                if (s.charAt(ptrS) != t.charAt(ptrT)) return false;
                ptrS--; ptrT--;
            }
        }
        if (ptrS == -1 && ptrT != -1) {
            while (ptrT > -1) {
                if (t.charAt(ptrT) == '#') { cntT++; ptrT--; }
                else if (cntT > 0) { cntT--; ptrT--; }
                else return false;
            }
        }
        else if (ptrS != -1 && ptrT == -1) {
            while (ptrS > -1) {
                if (s.charAT(ptrS) == '#') { cntS++; ptrS--; }
                else if (cntS > 0) { cntS--; ptrS--; }
                else return false;
            }
        }
        return true;
    }
}