Advertisement
Guest User

Untitled

a guest
Jul 12th, 2019
127
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Go 1.04 KB | None | 0 0
  1. import "strings"
  2.  
  3. func reverseInParentheses(inputString string) string {
  4.     stack2d := make([][]rune, len(inputString))
  5.     if inputString == "" {
  6.         return ""
  7.     }
  8.     for i := range stack2d {
  9.         stack2d[i] = make([]rune, len(inputString))
  10.     }
  11.     current := 0
  12.  
  13.     for index := 0; index < len(inputString); index++ {
  14.         if(inputString[index] == '('){
  15.             current += 1
  16.         } else if( inputString[index] == ')') {
  17.             stack2d = popStack(stack2d, current)
  18.             current -= 1
  19.         } else {
  20.             stack2d[current] = append(stack2d[current], rune(inputString[index]))
  21.         }
  22.     }
  23.     return strings.Trim(string(stack2d[0]), "\u0000")
  24. }
  25.  
  26. func popStack(stack [][]rune , current int) [][]rune {
  27.     var l rune
  28.     for i:=0; i< len(stack[current]); i++ {
  29.         l, stack[current] = stack[current][len(stack[current])-1], stack[current][:len(stack[current])-1]
  30.         if l != '\u0000'{
  31.         stack[current-1] = append(stack[current-1], l)
  32.         }
  33.     }
  34.     return stack
  35. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement