前言
记录自己刷题思路,时常复习。
一、字符串
二、解题思路
1.剑指 Offer 58 - II. 左旋转字符串
数字k代表下标为k之前的字符都要翻转,则可将k当成一个标志,初始化一个新byte切片存放翻转后的字符串
遍历字符串s;当 i < n 时代表 i 位置的字符需要翻转置len(s) - n 的位置
i >= n 时代表 i 位置的字符需要往前移n个位置
go代码如下:
func reverseLeftWords(s string, n int) string {
var (
l = len(s)
ss = make([]byte, len(s), len(s))
step = l - n
)
for i := 0; i < l; i++ {
if i < n {
ss[i+step] = s[i]
} else {
ss[i-n] = s[i]
}
}
return string(ss)
}