मान लीजिए हमारे पास दो स्ट्रिंग्स 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 के समान है, तो
- s वापस करें
- अन्यथा जब n, 1 के समान है, तो
- t वापस करें
- a := s, b := t
- i के लिए 2 से n तक की रेंज में, करें
- यदि i mod 2, 0 के समान है, तो
- c := b को a के साथ जोड़ें
- अन्यथा,
- c := a को 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