在Python中旋转字符串

假设我们有两个字符串,A和B。我们将旋转字符串A,并在旋转的任何位置检查它是否与B匹配,如果是,则返回true,否则返回false。例如,如果A ='abcde',而B ='bcdea',答案将是正确的,因为旋转A后可以将A转换为B。

为了解决这个问题,我们将遵循以下步骤-

  • 当A和B都为空时,则返回true;而当两者长度不同时,则返回false

  • A:=在A之后连接A

  • i:= 0,j:= 0

  • 而我<A的长度

    • 将i和j加1

    • 如果A的长度– i + 1 <B的长度,则返回false

    • 而i <A的长度和j <B的长度,A [i] = B [j]

    • 如果j = B的长度,则返回true

    • 如果j不为0,则将i减1

    • j:= 0

    • 使我增加1

    示例

    让我们看下面的实现以更好地理解-

    class Solution(object):

       def rotateString(self, A, B):

          if not A and not B:

             return True

          if len(A) != len(B):

             return False

          A = A*2

          i = 0

          j=0

          #print(A,B)

          while i < len(A):

             if len(A)-i+1<len(B):

                return False

             while i<len(A) and j < len(B) and A[i] == B[j]:

                #print("Here!",i,j)

                i+=1

                j+=1

             if j == len(B):

                return True

             if j:

                i-=1

             j=0

             i+=1

    ob1 = Solution()print(ob1.rotateString("abcde", "cdeab"))

    输入项

    "abcde"

    "cdeab"

    输出结果

    True

    以上是 在Python中旋转字符串 的全部内容, 来源链接: utcz.com/z/326756.html

    回到顶部