Source: https://leetcode.com/problems/backspace-string-compare/

Given two strings `S`

and `T`

, return if they are equal when both are typed into empty text editors. `#`

means a backspace character.

**Example 1:**

Input:S = "ab#c", T = "ad#c"Output:trueExplanation: Both S and T become "ac".

**Example 2:**

Input:S = "ab##", T = "c#d#"Output:trueExplanation: Both S and T become "".

**Example 3:**

Input:S = "a##c", T = "#a#c"Output:trueExplanation: Both S and T become "c".

**Example 4:**

Input:S = "a#c", T = "b"Output:falseExplanation: S becomes "c" while T becomes "b".

**Note**:

`1 <= S.length <= 200`

`1 <= T.length <= 200`

`S`

and`T`

only contain lowercase letters and`'#'`

characters.

**Follow up:**

- Can you solve it in
`O(N)`

time and`O(1)`

space?

Given two strings `S`

and `T`

, return if they are equal when both are typed into empty text editors. `#`

means a backspace character.

**Example 1:**

Input:S = "ab#c", T = "ad#c"Output:trueExplanation: Both S and T become "ac".

**Example 2:**

Input:S = "ab##", T = "c#d#"Output:trueExplanation: Both S and T become "".

**Example 3:**

Input:S = "a##c", T = "#a#c"Output:trueExplanation: Both S and T become "c".

**Example 4:**

Input:S = "a#c", T = "b"Output:falseExplanation: S becomes "c" while T becomes "b".

**Note**:

`1 <= S.length <= 200`

`1 <= T.length <= 200`

`S`

and`T`

only contain lowercase letters and`'#'`

characters.

**Follow up:**

- Can you solve it in
`O(N)`

time and`O(1)`

space?

Given two strings `S`

and `T`

, return if they are equal when both are typed into empty text editors. `#`

means a backspace character.

**Example 1:**

Input:S = "ab#c", T = "ad#c"Output:trueExplanation: Both S and T become "ac".

**Example 2:**

Input:S = "ab##", T = "c#d#"Output:trueExplanation: Both S and T become "".

**Example 3:**

Input:S = "a##c", T = "#a#c"Output:trueExplanation: Both S and T become "c".

**Example 4:**

Input:S = "a#c", T = "b"Output:falseExplanation: S becomes "c" while T becomes "b".

**Note**:

`1 <= S.length <= 200`

`1 <= T.length <= 200`

`S`

and`T`

only contain lowercase letters and`'#'`

characters.

**Follow up:**

- Can you solve it in
`O(N)`

time and`O(1)`

space?

This problem is very easy if we use a stack. When we meet any character but ‘#’, we push it to the stack. When we meet ‘#’ we pop an element from the stack. In the end, we output anything remaining in the stack.

Github: https://github.com/tinyfool/leetcode/tree/master/src/p0844

Other problems related to stack and queue, see also Stack and Queue Data Structure (Java code and Leetcode problems)