- 算法
- 从后往前比较字符
- 1.用back记录退格符'#'的个数,遍历指针对应的向前移动以此跳过退格符删除的字符
- 2.当指针对应的字符在两个字符串中不相等或者其中一个字符串先遍历完毕时,退出返回不相等
- 3.当两个字符串同时遍历完毕时,退出返回相等
public boolean backspaceCompare(String S, String T) {
int i = S.length() - 1, j = T.length() - 1, back;
while (true) {
back = 0;
while (i >= 0 && (back > 0 || S.charAt(i) == '#')) {
back += (S.charAt(i) == '#' ? 1 : -1);
i--;
}
back = 0;
while (j >= 0 && (back > 0 || T.charAt(j) == '#')) {
back += (T.charAt(j) == '#' ? 1 : -1);
j--;
}
if (i >= 0 && j >= 0 && S.charAt(i) == T.charAt(j)) {
i--;
j--;
} else {
break;
}
}
return i == -1 && j == -1;
}