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

โปรแกรมค้นหาลำดับที่ n หลังจากทำตามกฎลำดับสตริงที่กำหนดใน Python


สมมติว่าเรามีสองสตริง s, t และอีกจำนวนบวก n จะได้รับ เราต้องหาผลตอบแทนเทอมที่ n ของลำดับ A โดยที่ -

  • A[0] =ส
  • A[1] =t
  • A[n] =A[n - 1] + A[n - 2] เมื่อ n เป็นเลขคู่ มิฉะนั้น A[n] =A[n - 2] + A[n - 1]

ตัวอย่างเช่น ถ้า s ="a" และ t ="b" ดังนั้นลำดับ A จะเป็น − ["a", "b", "ba" ("a" + "b"), "bba" ( "b" + "ba"), "bbaba" ("bba" + "ba")]

ดังนั้น หากอินพุตเป็น s ="pk", t ="r", n =4 เอาต์พุตจะเป็น "rrpkrpk"

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

  • ถ้า n เหมือนกับ 0 แล้ว
    • คืนสินค้า
  • มิฉะนั้นเมื่อ n เหมือนกับ 1 แล้ว
    • คืนสินค้า
  • a :=s, b :=t
  • สำหรับฉันในช่วง 2 ถึง n ทำ
    • ถ้าฉัน mod 2 เหมือนกับ 0 แล้ว
      • c :=b เชื่อม a
    • มิฉะนั้น
      • c :=a concatenate b
    • a :=b
    • b :=c
  • คืนค

ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น -

ตัวอย่าง

class Solution:
   def solve(self, s, t, n):
      if n == 0:
         return s
      elif n == 1:
         return t
         a = s
         b = t
      for i in range(2, n+1):
         if i%2 == 0:
            c = b + a
         else:
            c = a + b
            a = b
            b = c
      return c
ob = Solution()
print(ob.solve("pk", "r", 4))

อินพุต

"pk", "r", 4

ผลลัพธ์

rrpkrpk