|
@@ -0,0 +1,19 @@
|
|
|
+func reverseStr(s string, k int) string {
|
|
|
+ runes := []rune(s)
|
|
|
+ n := len(s)
|
|
|
+ beg, end := 0, k-1
|
|
|
+ for beg < n {
|
|
|
+ reverse(runes, n, beg, end)
|
|
|
+ beg, end = beg+2*k, end+2*k
|
|
|
+ }
|
|
|
+ return string(runes)
|
|
|
+}
|
|
|
+
|
|
|
+func reverse(runes []rune, n int, l int, r int) {
|
|
|
+ if n <= r {
|
|
|
+ r = n - 1
|
|
|
+ }
|
|
|
+ for ; l < r; l, r = l+1, r-1 {
|
|
|
+ runes[l], runes[r] = runes[r], runes[l]
|
|
|
+ }
|
|
|
+}
|