ধরুন আমাদের দুটি স্ট্রিং আছে s, t এবং আরেকটি ধনাত্মক সংখ্যা nও দেওয়া আছে, আমাদের A অনুক্রমের nম পদটি ফেরত খুঁজে বের করতে হবে যেখানে −
- A[0] =s
- 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 রেঞ্জের i জন্য, করুন
- যদি i mod 2 0 এর মত হয়, তাহলে
- c :=b concatenate a
- অন্যথায়,
- c :=a concatenate b
- a :=b
- b :=c
- যদি i mod 2 0 এর মত হয়, তাহলে
- রিটার্ন 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