Given two strings `s` and `t`, return `true` _if they are equal when both are typed into empty text editors_. `'#'` means a backspace character.

Note that after backspacing an empty text, the text will continue empty.

**Example 1:**

**Input:** s =  "ab#c ", t =  "ad#c "
**Output:** true
**Explanation:** Both s and t become  "ac ".

**Example 2:**

**Input:** s =  "ab## ", t =  "c#d# "
**Output:** true
**Explanation:** Both s and t become  " ".

**Example 3:**

**Input:** s =  "a#c ", t =  "b "
**Output:** false
**Explanation:** s becomes  "c " while t becomes  "b ".

**Constraints:**

*   `1 <= s.length, t.length <= 200`
*   `s` and `t` only contain lowercase letters and `'#'` characters.



def backspaceCompare(s: str, t: str) -> bool:
    i, j = len(s) - 1, len(t) - 1
    while True:
        back = 0
        while i >= 0 and (back > 0 or s[i] == '#'):
            back = back + 1 if s[i] == '#' else back - 1
            i -= 1
        back = 0
        while j >= 0 and (back > 0 or t[j] == '#'):
            back = back + 1 if t[j] == '#' else back - 1
            j -= 1
        if i >= 0 and j >= 0 and s[i] == t[j]:
            i, j = i - 1, j - 1
        else:
            return i == -1 and j == -1
