Skip to content

Latest commit

 

History

History
33 lines (25 loc) · 938 Bytes

58.md

File metadata and controls

33 lines (25 loc) · 938 Bytes

左旋转字符串

题目

汇编语言中有一种移位指令叫做循环左移(ROL),现在有个简单的任务,就是用字符串模拟这个指令的运算结果。对于一个给定的字符序列 S ,请你把其循环左移 K 位后的序列输出。例如,字符序列 S = ”abcXYZdef” , 要求输出循环左移 3 位后的结果,即 “XYZdefabc” 。是不是很简单?OK,搞定它!

  • 数据范围:输入的字符串长度满足 0≤len≤100,0≤n≤100
  • 进阶:空间复杂度 O(n),时间复杂度 O(n)

示例

  • 输入:"abcXYZdef",3

  • 返回值:"XYZdefabc"

  • 输入:"aab",10

  • 返回值:"aba"

实现

func LeftRotateString(str string, n int) string {
    if str == "" || n == len(str) {
        return str
    }
    if n > len(str) {
        n = n % len(str)
    }
	temp := []rune(str)
	res := temp[n:]
	res = append(res, temp[:n]...)
	return string(res)
}