Leetcode Note: Go - Reverse String II
Reverse String II - LeetCode
https://leetcode.com/problems/reverse-string-ii/
- Go 言語で取り組んだメモ
所感
- string s を k int 値単位で反転して文字列を return する
回答
Reverse String II - LeetCode
https://leetcode.com/problems/reverse-string-ii/solution/
[Golang] Runtime 0 ms solution - LeetCode Discuss
https://leetcode.com/problems/reverse-string-ii/discuss/373835/Golang-Runtime-0-ms-solution
func reverseStr(s string, k int) string {
res := []byte(s)
for i := 0; i < len(res); i = i + 2*k {
if i+k < len(res) {
reverseK(res[i : i+k])
} else {
reverseK(res[i:])
}
}
return string(res)
}
// reverse slice
func reverseK(b []byte) {
left, right := 0, len(b)-1
for left < right {
b[left], b[right] = b[right], b[left]
left, right = left+1, right-1
}
}
- string を byte 配列に変換
- for loop でカウンタの更新に k を使用して、この単位でのルーチンを構築
- 文字列を反転する関数を別途実装して適宜呼び出し