给定 s 和 t 两个字符串,当它们分别被输入到空白的文本编辑器后,请你判断二者是否相等。# 代表退格字符。
如果相等,返回 true ;否则,返回 false 。
注意:如果对空文本输入退格字符,文本继续为空。
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/backspace-string-compare
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
import java.util.Scanner;
class Solution {
public boolean backspaceCompare(String s, String t) {
int p1 = s.length() - 1, p2 = t.length() - 1;
int skip1 = 0, skip2 = 0;
while (p1 >= 0 || p2 >= 0) {
while (p1 >= 0) {
if (s.charAt(p1) == '#') {
skip1++;
p1--;
} else if (skip1 > 0) {
skip1--;
p1--;
} else {
break;
}
}
while (p2 >= 0) {
if (t.charAt(p2) == '#') {
skip2++;
p2--;
} else if (skip2 > 0) {
skip2--;
p2--;
} else {
break;
}
}
if (p1 >= 0 && p2 >= 0) {
if (s.charAt(p1) != t.charAt(p2)) {
return false;
}
} else {
if (!(p1 < 0 && p2 < 0)) {
return false;
}
}
p1--;
p2--;
}
return true;
}
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
while (in.hasNext()) {
System.out.println(new Solution().backspaceCompare(in.next(), in.next()));
}
}
}