@@ -37,71 +37,65 @@ Can you solve it in O(N) time and O(1) space?
37
37
* @param {string } T
38
38
* @return {boolean }
39
39
*/
40
- var backspaceCompare = function ( S , T ) {
40
+ var backspaceCompare = function ( S , T ) {
41
41
var iterS = S . length - 1 ;
42
42
var iterT = T . length - 1 ;
43
-
44
- while ( iterS >= 0 || iterT >= 0 ) {
45
- if ( iterS >= 0 && S . charAt ( iterS ) === "#" ) {
43
+
44
+ while ( iterS >= 0 || iterT >= 0 ) {
45
+ if ( iterS >= 0 && S . charAt ( iterS ) === "#" ) {
46
46
var countBack = 0 ;
47
- while ( iterS >= 0 && ( countBack > 0 || S [ iterS ] === "#" ) ) {
48
- if ( iterS >= 0 && S [ iterS ] === "#" ) {
47
+ while ( iterS >= 0 && ( countBack > 0 || S [ iterS ] === "#" ) ) {
48
+ if ( iterS >= 0 && S [ iterS ] === "#" ) {
49
49
countBack ++ ;
50
50
} else {
51
51
countBack -- ;
52
52
}
53
53
54
54
iterS -- ;
55
55
}
56
- } else if ( iterT >= 0 && T . charAt ( iterT ) === "#" ) {
57
- var countBack = 0 ;
58
- while ( iterT >= 0 && ( countBack > 0 || T [ iterT ] === "#" ) ) {
59
- if ( iterT >= 0 && T [ iterT ] === "#" ) {
60
- countBack ++ ;
61
- } else {
62
- countBack -- ;
56
+ } else if ( iterT >= 0 && T . charAt ( iterT ) === "#" ) {
57
+ var countBack = 0 ;
58
+ while ( iterT >= 0 && ( countBack > 0 || T [ iterT ] === "#" ) ) {
59
+ if ( iterT >= 0 && T [ iterT ] === "#" ) {
60
+ countBack ++ ;
61
+ } else {
62
+ countBack -- ;
63
+ }
64
+
65
+ iterT -- ;
63
66
}
64
-
65
- iterT -- ;
66
- }
67
67
} else {
68
- if ( iterS < 0 || iterT < 0 || S . charAt ( iterS ) !== T . charAt ( iterT ) )
68
+ if ( iterS < 0 || iterT < 0 || S . charAt ( iterS ) !== T . charAt ( iterT ) )
69
69
return false ;
70
-
70
+
71
71
iterS -- ;
72
72
iterT -- ;
73
73
}
74
74
}
75
-
76
- return iterS < 0 && iterT < 0 ;
75
+
76
+ return iterS < 0 && iterT < 0 ;
77
77
} ;
78
78
79
- // Naive Aproach
80
- var backspaceCompare2 = function ( S , T ) {
79
+ // Naive Aproach
80
+ var backspaceCompare2 = function ( S , T ) {
81
81
var stackS = [ ] ;
82
- for ( var i = 0 ; i < S . length ; i ++ ) {
83
- if ( S . charAt ( i ) === "#" )
84
- stackS . shift ( ) ;
85
- else
86
- stackS . unshift ( S . charAt ( i ) ) ;
82
+ for ( var i = 0 ; i < S . length ; i ++ ) {
83
+ if ( S . charAt ( i ) === "#" ) stackS . shift ( ) ;
84
+ else stackS . unshift ( S . charAt ( i ) ) ;
87
85
}
88
-
86
+
89
87
var stackT = [ ] ;
90
- for ( var i = 0 ; i < T . length ; i ++ ) {
91
- if ( T . charAt ( i ) === "#" )
92
- stackT . shift ( ) ;
93
- else
94
- stackT . unshift ( T . charAt ( i ) ) ;
88
+ for ( var i = 0 ; i < T . length ; i ++ ) {
89
+ if ( T . charAt ( i ) === "#" ) stackT . shift ( ) ;
90
+ else stackT . unshift ( T . charAt ( i ) ) ;
95
91
}
96
-
97
- while ( stackS . length > 0 && stackT . length > 0 ) {
92
+
93
+ while ( stackS . length > 0 && stackT . length > 0 ) {
98
94
var elemS = stackS . shift ( ) ;
99
95
var elemT = stackT . shift ( ) ;
100
- if ( elemS !== elemT )
101
- return false ;
102
-
96
+ if ( elemS !== elemT ) return false ;
103
97
}
104
-
98
+
105
99
return stackS . length === 0 && stackT . length === 0 ;
106
100
} ;
107
101
0 commit comments