Skip to content

Latest commit

 

History

History
37 lines (29 loc) · 605 Bytes

58 - II. 左旋转字符串.md

File metadata and controls

37 lines (29 loc) · 605 Bytes

解题思路

1. 使用切片

字符串从 n 切到末尾,和切到 n 个拼接得到结果

func reverseLeftWords(s string, n int) string {
    return s[n:] + s[:n]
}

2. 翻转

  1. 翻转 [0,k) 字符串
  2. 翻转 [k, len(k)) 字符串
  3. 翻转整个字符串
func reverseLeftWords(s string, n int) string {
    b := []byte(s)
    reverse(b[:n])
    reverse(b[n:])
    reverse(b)
    return string(b)
}
func reverse(b []byte) {
    n := len(b)
    for i := 0; i < n/2; i++ {
        b[i], b[n-i-1] = b[n-i-1], b[i]
    }
}