使用python查找给定字符串的所有可能的旋转

2024-05-16 17:48:51 发布

您现在位置:Python中文网/ 问答频道 /正文

给定的字符串是“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。你知道我在这里遗漏了什么吗?在


Tags: 方法字符串代码inforlendefrange
3条回答

有两个错误:

  • range(b-1)应该是range(b)
  • a[:i] + a[i:]应该是{}。在

我就是这么做的。我使用了一个deque,一个集合中的类,然后像这样使用rotate函数

from collections import deque

string = 'abc'

for i in range(len(string)):
    c = deque(string)
    c.rotate(i)
    print ''.join(list(c))

给我这个输出。在

^{pr2}$

它的作用。它创建了一个deque对象,这是一个双端队列对象,它有一个rotate方法,rotate获取要旋转的步数,并返回右移的对象,其步数与二进制操作中的rshift类似。通过循环,它移位ad生成一个deque对象,我将其转换为list,最后转换为字符串。 希望这有帮助

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)

相关问题 更多 >