मान लीजिए कि हमारे पास दो तार s, t हैं और एक अन्य धनात्मक संख्या n भी दी गई है, हमें अनुक्रम A का nवाँ पद ज्ञात करना है जहाँ -
- ए[0] =एस
- ए[1] =टी
- 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 के समान हो, तो
- रिटर्न टी
- ए:=एस, बी:=टी
- 2 से n की श्रेणी में i के लिए, करें
- यदि i mod 2 0 के समान है, तो
- c :=b एक साथ जोड़ना
- अन्यथा,
- c :=a concatenate b
- a :=b
- b :=c
- यदि i mod 2 0 के समान है, तो
- वापसी सी
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -
उदाहरण
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