查找索引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