字符串循环左移前K位
python语言实现
两种方法实现:
1.三次翻转方法
2.直接利用python中字符串的切片方法
import pdb
def reverse(s,left,right):
# pdb.set_trace()
while left<right:
s[left],s[right]=s[right],s[left]
left+=1
right-=1
return s
def lefttoright(s,n,m):
# pdb.set_trace()
m %=n
reverse(s,0,m-1) #翻转0到m-1的字符串
reverse(s,m,n-1)#反转m到n-1的字符串
reverse(s,0,n-1)#翻转整个字符串
print(s)
if __name__=='__main__':
'''方法1:
三次翻转(X'Y')'=YX
'''
s1='abcdef'
#将前k移到字符串尾部
k=2
s2=[x for x in s1] #注意字符串不能修改,因此将字符串转换为数组中元素再交换位置
lefttoright(s2,len(s2),k)
print(''.join(s2))
'''方法2:直接切片连接''‘
print('python:',s1[k:]+s1[:k])