Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import "strings"
- func reverseInParentheses(inputString string) string {
- stack2d := make([][]rune, len(inputString))
- if inputString == "" {
- return ""
- }
- for i := range stack2d {
- stack2d[i] = make([]rune, len(inputString))
- }
- current := 0
- for index := 0; index < len(inputString); index++ {
- if(inputString[index] == '('){
- current += 1
- } else if( inputString[index] == ')') {
- stack2d = popStack(stack2d, current)
- current -= 1
- } else {
- stack2d[current] = append(stack2d[current], rune(inputString[index]))
- }
- }
- return strings.Trim(string(stack2d[0]), "\u0000")
- }
- func popStack(stack [][]rune , current int) [][]rune {
- var l rune
- for i:=0; i< len(stack[current]); i++ {
- l, stack[current] = stack[current][len(stack[current])-1], stack[current][:len(stack[current])-1]
- if l != '\u0000'{
- stack[current-1] = append(stack[current-1], l)
- }
- }
- return stack
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement