FJ的字符串
描述
FJ在沙盘上写了这样一些字符串:
A1 = “A”
A2 = “ABA”
A3 = “ABACABA”
A4 = “ABACABADABACABA”
… …
你能找出其中的规律并写所有的数列AN吗?
思路
思路很多。这里介绍一个奇妙的思路,递归
首先,请画出中序遍历结果为ABACABA的二叉树图,发现什么了?
那我们直接敲代码
代码
#st='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
st=[chr(i) for i in range(65,65+26)] #改进字符的生成
def func(n):
if n==0:
return 'A'
return func(n-1)+st[n]+func(n-1)
print(func(int(input())-1))
这里给出一开始我的代码,虽然也正确,仅作对比
st='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
a0=''
n=int(input())
for i in range(n):
a0=a0*2
length=len(a0)
mid=int((length-1)/2)+1
a0=a0[:mid]+st[i]+a0[mid:]
print(a0)