LeetCode Problem
844. Backspace String Compare
Link to LeetCode
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".
class Solution {
public boolean backspaceCompare(String S, String T) {
int i = S.length()-1;
int j = T.length()-1;
while (i>=0 || j>=0) {
int c1=0;
while (i>=0 && (c1>0 || S.charAt(i)=='#')) {
c1 += S.charAt(i) == '#' ? 1 : -1;
i--;
}
int c2=0;
while (j>=0 && (c2>0 || T.charAt(j)=='#')) {
c2 += T.charAt(j) == '#' ? 1 : -1;
j--;
}
if (i>=0 && j>=0) {
if (S.charAt(i) != T.charAt(j)) {
return false;
} else {
i--;
j--;
}
} else {
if(i>=0 || j>=0){
return false;
}
}
}
return i< 0 && j< 0;
}
}