2024-05-16 17:48:51 发布
网友
给定的字符串是“abc”,那么它应该打印出“abc”,“bca”,“cba”
我的方法是:找到给定字符串的长度,然后旋转它们直到长度
def possible_rotation(): a = "abc" b = len(a) for i in range (b-1): c = a[:i] + a[i:] print c
上面的代码只打印abc,abc。你知道我在这里遗漏了什么吗?在
有两个错误:
range(b-1)
range(b)
a[:i] + a[i:]
我就是这么做的。我使用了一个deque,一个集合中的类,然后像这样使用rotate函数
deque
from collections import deque string = 'abc' for i in range(len(string)): c = deque(string) c.rotate(i) print ''.join(list(c))
给我这个输出。在
它的作用。它创建了一个deque对象,这是一个双端队列对象,它有一个rotate方法,rotate获取要旋转的步数,并返回右移的对象,其步数与二进制操作中的rshift类似。通过循环,它移位ad生成一个deque对象,我将其转换为list,最后转换为字符串。 希望这有帮助
rshift
def possible_rotation(): a = "abc" b = len(a) for i in range (b): c = a[i:]+a[:i] print c possible_rotation()
输出:
abc bca cab
你有2个问题射程问题和旋转逻辑it应该是a[i:]+a[:i]而不是相反圆的。为了范围range(b-1) should be range(b)
a[i:]+a[:i]
range(b-1) should be range(b)
有两个错误:
range(b-1)
应该是range(b)
a[:i] + a[i:]
应该是{我就是这么做的。我使用了一个
deque
,一个集合中的类,然后像这样使用rotate函数给我这个输出。在
^{pr2}$它的作用。它创建了一个
deque
对象,这是一个双端队列对象,它有一个rotate方法,rotate获取要旋转的步数,并返回右移的对象,其步数与二进制操作中的rshift
类似。通过循环,它移位ad生成一个deque对象,我将其转换为list,最后转换为字符串。 希望这有帮助输出:
abc bca cab
你有2个问题射程问题和旋转逻辑it应该是
a[i:]+a[:i]
而不是相反圆的。为了范围range(b-1) should be range(b)
相关问题 更多 >
编程相关推荐