Computer >> Máy Tính >  >> Lập trình >> Python

Tìm chỉ mục i sao cho tiền tố của S1 và hậu tố của S2 cho đến khi tôi tạo thành một palindrome khi được nối bằng Python


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