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)
posted @ 2020-03-11 16:10  盐亭的森林  阅读(231)  评论(0编辑  收藏  举报