题解 | #超级圣诞树#

超级圣诞树

http://www.nowcoder.com/practice/470d26c9a73e4e17be8cc45cac843423

最开始想平移来实现,没弄成,看了其他人用对称的方法特别好

# 总体是对称的思路,每一行都是对称的
def buildtree(l):
    newls = l
    length = len(l)
    for i in range(length):
        # 左右对称,增加中间的空格
        newls.append(l[i] + ' '*(2*length-1 - (2*i)) + l[i])
    return newls
h = int(input())
ls = ['*','* *','* * *']
# width 表示树枝的最宽的宽度
width = 3*2**(h-1)+3*2**(h-1)-1
# 迭代获得最终的树枝,用列表存储
for i in range(1,h):
    newls = buildtree(ls)
    ls = newls
# 输出树枝
for i in range(len(ls)):
    print(ls[i].center(width))
# 输出树干
for i in range(h):
    print('*'.center(width))
全部评论

相关推荐

od现在都成这样了 就业市场真是crazy
牛客473059135号:没事,我有个朋友是985本硕学计算机的,被华为卡目标院校了简历挂,不过不是od虽然人家拿到一堆别的offer了就挺搞笑的属于是……
点赞 评论 收藏
分享
嘀哩咕噜说啥呢:27届,这简历,强的逆天,大厂实习随便冲,面经多少看点,hot100刷完,大厂随便挑了
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
3
1
分享

创作者周榜

更多
牛客网
牛客企业服务