【发布时间】:2020-04-18 09:19:58
【问题描述】:
最近我有一个任务来移动字符串的字符,如下示例所示
s = 'abcd'
right shift by 2
output: 'cdab'
我使用下面的代码,它工作正常。
l1=[]
l2=[]
s='abcs'
l1=list(s)
loop = 0
rightshift = 2
while loop < rightshift:
l2=[]
l2=l1[1:]
l2.append(l1[0])
l1=[]
l1=l2
loop += 1
print('After shift ' , l1)
但是,如果我们有一个像 544645655 这样的大数字,则需要很多时间。我们还有其他替代方法吗?
Some more examples(where s='abcd')
bcda 1st shift
cdab 2nd shift
dabc 3rd shift
abcd 4th shift
bcda 5th shift
【问题讨论】:
-
这能回答你的问题吗? Rotating strings in Python
-
abcd右移3,不应该是bcda吗? -
已在问题中添加了一些示例,之前的问题存在一些问题
-
一个简单的优化是意识到按字符串长度移动是无操作的,所以你只需要移动
N / len(s)的其余部分。您可以使用模运算符简单地做到这一点
标签: python