Feat: done
This commit is contained in:
31
reverse.go
Normal file
31
reverse.go
Normal file
@@ -0,0 +1,31 @@
|
||||
package reverse
|
||||
|
||||
import "unicode/utf8"
|
||||
|
||||
func swap(a *byte, b *byte) {
|
||||
*a ^= *b
|
||||
*b ^= *a
|
||||
*a ^= *b
|
||||
}
|
||||
|
||||
func reverse(b []byte) {
|
||||
for i := 0; i < len(b); {
|
||||
_, sz := utf8.DecodeRune(b[i:])
|
||||
l := i
|
||||
r := i + sz - 1
|
||||
for l < r {
|
||||
swap(&b[l], &b[r])
|
||||
l++
|
||||
r--
|
||||
}
|
||||
i += sz
|
||||
}
|
||||
|
||||
l := 0
|
||||
r := len(b) - 1
|
||||
for l < r {
|
||||
swap(&b[l], &b[r])
|
||||
l++
|
||||
r--
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user