汇编语言中有一种移位指令叫做循环左移(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)
}