Python程序:根据给定字符串序列规则查找第n个序列
假设我们有两个字符串s、t,还有一个给定的正数n,我们需要找到序列A的第n项,其中:
- A[0] = s
- A[1] = t
- 当n为偶数时,A[n] = A[n - 1] + A[n - 2];否则,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
- 对于范围从2到n的i,执行:
- 如果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
广告
数据结构
网络
关系数据库管理系统 (RDBMS)
操作系统
Java
iOS
HTML
CSS
Android
Python
C语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP