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

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

ลำดับ A: A[0]=s, A[1]=t, A[n] = A[n-1]+A[n-2] (n คู่) หรือ A[n-2]+A[n-1] (n คี่)

ตัวอย่าง: s="pk", t="r", n=4 → "rrpkrpk"

อัลกอริธึม Iterative

  • เก็บ a=A[n-2], b=A[n-1]
  • ลูป i=2..n: ถ้า i คู่ → c=b+a, คี่ → c=a+b; แล้ว a=b, b=c

การนำไปใช้

class Solution:
    def solve(self, s, t, n):
        if n == 0: return s
        if n == 1: return t
        a, b = s, 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))  # rrpkrpk