代码随想录算法训练营 | 第八天 | 博客打卡
题目链接:leetcode 541. 反转字符串 II
注:仅为个人笔记,难以细致且通俗。
func reverseStr(s string, k int) string {
reverse := func (s []byte) {
left, right := 0, len(s)-1
for left < right {
s[left], s[right] = s[right], s[left]
left++
right--
}
}
ss := []byte(s)
length := len(s)
for i := 0; i < length; i += 2 * k {
if i + k <= length {
reverse(ss[i:i+k])
} else {
reverse(ss[i:length])
}
}
return string(ss)
}