Skip to content

Commit d8c0e28

Browse files
committed
Solution to reverse parentheses
1 parent 7d782d0 commit d8c0e28

File tree

1 file changed

+29
-0
lines changed

1 file changed

+29
-0
lines changed
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
package reverseparentheses
2+
3+
func Reverse(s string) string {
4+
return string(reverseBytes([]byte(s)))
5+
}
6+
7+
func reverseBytes(in []byte) []byte {
8+
for i := 0; i < len(in); i++ {
9+
r := in[i]
10+
if r == '(' {
11+
in = append(in[:i], reverseBytes(in[i+1:])...)
12+
}
13+
if r == ')' {
14+
simpleReverse(in[:i])
15+
return append(in[:i], in[i+1:]...)
16+
}
17+
}
18+
return in
19+
20+
}
21+
22+
func simpleReverse(in []byte) {
23+
i := len(in)
24+
for j := 0; j < i/2; j++ {
25+
x := in[j]
26+
in[j] = in[i-j-1]
27+
in[i-j-1] = x
28+
}
29+
}

0 commit comments

Comments
 (0)