@@ -37,71 +37,65 @@ Can you solve it in O(N) time and O(1) space?
3737 * @param {string } T
3838 * @return {boolean }
3939 */
40- var backspaceCompare = function ( S , T ) {
40+ var backspaceCompare = function ( S , T ) {
4141 var iterS = S . length - 1 ;
4242 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 ) === "#" ) {
4646 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 ] === "#" ) {
4949 countBack ++ ;
5050 } else {
5151 countBack -- ;
5252 }
5353
5454 iterS -- ;
5555 }
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 -- ;
6366 }
64-
65- iterT -- ;
66- }
6767 } 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 ) )
6969 return false ;
70-
70+
7171 iterS -- ;
7272 iterT -- ;
7373 }
7474 }
75-
76- return iterS < 0 && iterT < 0 ;
75+
76+ return iterS < 0 && iterT < 0 ;
7777} ;
7878
79- // Naive Aproach
80- var backspaceCompare2 = function ( S , T ) {
79+ // Naive Aproach
80+ var backspaceCompare2 = function ( S , T ) {
8181 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 ) ) ;
8785 }
88-
86+
8987 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 ) ) ;
9591 }
96-
97- while ( stackS . length > 0 && stackT . length > 0 ) {
92+
93+ while ( stackS . length > 0 && stackT . length > 0 ) {
9894 var elemS = stackS . shift ( ) ;
9995 var elemT = stackT . shift ( ) ;
100- if ( elemS !== elemT )
101- return false ;
102-
96+ if ( elemS !== elemT ) return false ;
10397 }
104-
98+
10599 return stackS . length === 0 && stackT . length === 0 ;
106100} ;
107101
0 commit comments