-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathBackspaceStringCompare.java
More file actions
40 lines (37 loc) · 1.62 KB
/
Copy pathBackspaceStringCompare.java
File metadata and controls
40 lines (37 loc) · 1.62 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
public class BackspaceStringCompare {
public boolean backspaceCompare(String S, String T) {
int i = S.length() - 1, j = T.length() - 1;
int ii = 0, jj = 0;
while(i >= 0 || j >= 0){
if(i >= 0 && S.charAt(i) == '#'){
ii++; i--; continue;
}
if(j >= 0 && T.charAt(j) == '#'){
jj++; j--; continue;
}
if(i >= 0 && ii > 0){
ii--; i--; continue;
}
if(j >= 0 && jj > 0){
jj--; j--; continue;
}
if(i >= 0 && j >= 0 && S.charAt(i) != T.charAt(j)) return false;
else if((i < 0 && j >= 0) || (i >= 0 && j < 0)) return false;
i--; j--;
}
return true;
}
public static void main(String[] args) {
BackspaceStringCompare backspaceStringCompare = new BackspaceStringCompare();
System.out.println(backspaceStringCompare.backspaceCompare("ab#c", "ad#c"));
System.out.println(backspaceStringCompare.backspaceCompare("ab##", "c#d#"));
System.out.println(backspaceStringCompare.backspaceCompare("a##c", "#a#c"));
System.out.println(backspaceStringCompare.backspaceCompare("a#c", "b"));
System.out.println(backspaceStringCompare.backspaceCompare("###", "b"));
System.out.println(backspaceStringCompare.backspaceCompare("###", "###########"));
System.out.println(backspaceStringCompare.backspaceCompare("##a#######", "a#"));
System.out.println(backspaceStringCompare.backspaceCompare("##a#####a##", "a#"));
System.out.println(backspaceStringCompare.backspaceCompare("a##a#####a##", "a#a"));
System.out.println(backspaceStringCompare.backspaceCompare("", ""));
}
}