假设我们有两个长度相同的字符串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