题目
字符串的左旋转操作是把字符串前面的若干个字符转移到字符串的尾部。请定义一个函数实现字符串左旋转操作的功能。比如,输入字符串"abcdefg"和数字2,该函数将返回左旋转两位得到的结果"cdefgab"。
示例
输入: s = “abcdefg”, k = 2
输出: “cdefgab”
解析
还是使用上一道题的单词反转的方法,三个步骤:
1.反转前半部分
2.反转后半部分
3.整体再反转一遍
func reverseLeftWords(s string, n int) string {
b := []byte(s)
reverse(b, 0, n-1)
reverse(b, n, len(s)-1)
reverse(b, 0, len(s)-1)
return string(b)
}
func reverse(b []byte, start, end int) {
for start < end {
b[start], b[end] = b[end], b[start]
start++
end--
}
}