查找索引i,使S1的前缀和S2的后缀直到在Python中串联时形成回文

假设我们有两个长度相同的字符串S1和S2,我们必须找到一个索引i,以使S1 [0…i]和S2 [i + 1…n-1]连接在一起时产生回文。当不可能时,返回-1。

因此,如果输入类似于S1 =“ pqrsu”,S2 =“ wxyqp”,则输出将为1,因为S1 [0..1] =“ pq”,S2 [2..n-1] =“ ypq ”,则S1 + S2 =“ pqyqp”表示回文。

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

  • n:= str1的大小

  • str:=空字符串

  • 对于0到n范围内的i,执行

    • 还给我

    • temp:= temp连接str2 [j]

    • str:= str连接str1 [i]

    • temp:=空字符串

    • 对于范围i +1至n的j,执行

    • 如果isPalindrome(str concatenate temp)为true,则

    • 返回-1

    示例

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

    def isPalindrome(s):
       if s == s[::-1]:
          return True
       return False
    def find_index(str1, str2):
       n = len(str1)
       str = ""
       for i in range(n):
          str = str + str1[i]
          temp = ""
          for j in range(i + 1, n):
             temp += str2[j]
          if (isPalindrome(str + temp)):
             return i
       return -1
    str1 = "pqrsu"
    str2 = "wxyqp"
    print(find_index(str1, str2))

    输入值

    "pqrsu", "wxyqp"

    输出结果

    1
    猜你喜欢