File tree Expand file tree Collapse file tree 1 file changed +17
-39
lines changed
Expand file tree Collapse file tree 1 file changed +17
-39
lines changed Original file line number Diff line number Diff line change 11class Solution {
2- public boolean backspaceCompare (String S , String T ) {
3- int i = S .length () - 1 ;
4- int j = T .length () - 1 ;
5- int skipS = 0 ;
6- int skipT = 0 ;
7- while (i >= 0 || j >= 0 ) {
8- while (i >= 0 ) {
9- if (S .charAt (i ) == '#' ) {
10- skipS ++;
11- i --;
12- }
13- else if (skipS > 0 ) {
14- skipS --;
15- i --;
16- }
17- else {
18- break ;
19- }
20- }
21- while (j >= 0 ) {
22- if (T .charAt (j ) == '#' ) {
23- skipT ++;
24- j --;
25- }
26- else if (skipT > 0 ) {
27- skipT --;
28- j --;
29- }
30- else {
31- break ;
2+ public boolean backspaceCompare (String s , String t ) {
3+ return formBackSpaceString (s ).equals (formBackSpaceString (t ));
4+ }
5+
6+ private String formBackSpaceString (String s ) {
7+ Stack <Character > stack = new Stack <>();
8+ for (char c : s .toCharArray ()) {
9+ if (c == '#' ) {
10+ if (!stack .isEmpty ()) {
11+ stack .pop ();
3212 }
13+ } else {
14+ stack .push (c );
3315 }
34- if (i >= 0 && j >= 0 && S .charAt (i ) != T .charAt (j )) {
35- return false ;
36- }
37- if ((i >= 0 ) != (j >= 0 )) {
38- return false ;
39- }
40- i --;
41- j --;
4216 }
43- return true ;
17+ StringBuilder sb = new StringBuilder ();
18+ while (!stack .isEmpty ()) {
19+ sb .append (stack .pop ());
20+ }
21+ return sb .toString ();
4422 }
4523}
You can’t perform that action at this time.
0 commit comments