Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

ค้นหาดัชนี i เช่นคำนำหน้าของ S1 และส่วนต่อท้ายของ S2 จนกระทั่งฉันสร้าง palindrome เมื่อต่อใน Python


สมมติว่าเรามีสองสตริง S1 และ S2 ที่มีความยาวเท่ากัน เราต้องหาดัชนี i ที่ S1[0…i] และ S2[i+1…n-1] ให้ palindrome เมื่อนำมาต่อกัน เมื่อทำไม่ได้ ให้คืนค่า -1

ดังนั้น หากอินพุตเป็น S1 ="pqrsu", S2 ="wxyqp" เอาต์พุตจะเป็น 1 เนื่องจาก S1[0..1] ="pq", S2[2..n-1] ="ypq " จากนั้น S1 + S2 ="pqyqp" แสดงว่าเป็นพาลินโดรม

เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -

  • n :=ขนาดของ str1

  • str :=สตริงว่าง

  • สำหรับผมอยู่ในช่วง 0 ถึง n ทำ

    • str :=str ต่อ str1[i]

    • temp :=สตริงว่าง

    • สำหรับ j ในช่วง i + 1 ถึง n ทำ

      • temp :=temp concatenate str2[j]

    • ถ้า isPalindrome(str concatenate temp) เป็นจริง แล้ว

      • กลับมา

  • กลับ -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