offer42--左旋转n个字符

来源:互联网 发布:c语言substring 编辑:程序博客网 时间:2024/05/17 22:25
# coding=utf-8#左旋转就是分成两部分,完成3次反转即可def leftrotate(s,n):    if len(s)<=0 or len(s)<n or n<0:        return ''    strlist=list(s)    strlist=reverse(strlist)    length=len(s)    p=length-n    frontlist=reverse(strlist[:p])    behindlist=reverse(strlist[p:])    resultstr=''.join(frontlist)+''.join(behindlist)    return resultstrdef reverse(lists):    if lists==None or len(lists)<=0:        return ''    startindex = 0    endindex = len(lists) - 1    while startindex < endindex:        lists[startindex], lists[endindex] = lists[endindex], lists[startindex]        startindex += 1        endindex -= 1    return listsif __name__ == '__main__':    s='abcdef'    print(leftrotate(s,2))