查找索引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(strconcatenatetemp)为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