Minimize a binary string by repeatedly removing even length substrings of same characters | Recursive function to print stack elements from bottom to top without changing their order ; If stack is empty ; Pop top element of the stack ; Recursively call the function PrintStack ; Print the stack element from the bottom ; Push the same element onto the stack to preserve the order ; Function to minimize binary string by removing substrings consisting of same character ; Declare a stack of characters ; Push the first character of the string into the stack ; Traverse the string s ; If Stack is empty ; Push current character into the stack ; Check if the current character is same as the top of the stack ; If true , pop the top of the stack ; Otherwise , push the current element ; Print stack from bottom to top ; Driver Code
function PrintStack ( s ) { if ( s . length == 0 ) return ; let x = s [ s . length - 1 ] ; s . pop ( ) ; PrintStack ( s ) ; document . write ( x ) ; s . push ( x ) ; } function minString ( s ) { let Stack = [ ] ; Stack . push ( s [ 0 ] ) ; for ( let i = 1 ; i < s . length ; i ++ ) { if ( Stack . length == 0 ) { Stack . push ( s [ i ] ) ; } else { if ( Stack [ Stack . length - 1 ] == s [ i ] ) { Stack . pop ( ) ; } else { Stack . push ( s [ i ] ) ; } } } PrintStack ( Stack ) ; } let str = " " ; minString ( str ) ;