58-2左旋转字符串

Posted kingshine007

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了58-2左旋转字符串相关的知识,希望对你有一定的参考价值。

题目:字符串左旋转操作是把字符串前面的若干个字符转移到字符串的尾部。请实现左旋转操作。

def reverse(arry,begin,end):
    while begin<end:
        arry[begin],arry[end] = arry[end],arry[begin]
        begin +=1
        end -=1

def left_rotate_string(s,n):
    s = list(s)
    ls = len(s)
    reverse(s,0,ls-1)
    reverse(s,0,ls-n-1)
    reverse(s,ls-n,ls-1)
    return ‘‘.join(s)

  注:主要思路是采用3次旋转,第一次字符串全部旋转;第二次前半部分旋转,以指定的n为分界点,此时旋转一次后的分界点变为len(s)-n;第三次后面部分旋转。

以上是关于58-2左旋转字符串的主要内容,如果未能解决你的问题,请参考以下文章

求左旋转字符串

LeetCode 58 - II. 左旋转字符串

左旋转字符串

《剑指offer》第五十八题(左旋转字符串)

左旋转字符串

剑指 Offer 58 - II. 左旋转字符串