Giả sử chúng ta có hai chuỗi S1 và S2 cùng độ dài, chúng ta phải tìm một chỉ số i sao cho S1 [0… i] và S2 [i + 1… n-1] cho một palindrome khi chúng được nối với nhau. Khi không thể, hãy trả về -1.
Vì vậy, nếu đầu vào là S1 ="pqrsu", S2 ="wxyqp", thì đầu ra sẽ là 1 là S1 [0..1] ="pq", S2 [2..n-1] ="ypq ", thì S1 + S2 =" pqyqp "chỉ ra là một palindrome.
Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -
-
n:=kích thước của str1
-
str:=chuỗi trống
-
đối với tôi trong phạm vi từ 0 đến n, hãy thực hiện
-
str:=str nối str1 [i]
-
temp:=chuỗi trống
-
đối với j trong phạm vi i + 1 đến n, thực hiện
-
temp:=temp nối str2 [j]
-
-
nếu isPalindrome (str concatenate temp) là true, thì
-
trả lại tôi
-
-
-
trả về -1
Ví dụ
Hãy cùng chúng tôi xem cách triển khai sau để hiểu rõ hơn -
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))
Đầu vào
"pqrsu", "wxyqp"
Đầu ra
1