字符串的左旋转操作是把字符串前面的若干个字符转移到字符串的尾部。请定义一个函数实现字符串左旋转操作的功能。比如,输入字符串”abcdefg”和数字2,该函数将返回左旋转两位得到的结果”cdefgab”。
方法一:暴力法
思路:每次向左移动一位,循环执行n次。
1 | class Solution { |
复杂度分析:时间复杂度为O(n × k),空间复杂度为O(k)。其中,k为字符串的长度。
方法二:拼接法
思路:创建一个数组cArr。先将字符串s的后k - n依次放入数组中,再将前n位依次放入数组中。
复杂度分析:时间复杂度和空间复杂度均为O(k)。其中,k为字符串的长度。
两次循环
1 | class Solution { |
使用substring
1 | class Solution { |
使用取模运算
1 | class Solution { |
方法三:三次反转
1 | class Solution { |
复杂度分析:时间复杂度和空间复杂度均为O(k)。其中,k为字符串的长度。