纸条对折折痕打印

问题描述:一条纸条,对折N次,折痕朝向有凹有凸,从左到右依次输出折痕

解题思路:假设对折一次的折痕记为“凹”,对折N次会发现,折痕会形成左子树都为“凹”,右子树都为“凸”的二叉树,最终遍历的结果,为折痕形成树形结构的中序遍历结果。

 1 def print_all_folds(n):
 2     print_process(1, n, True)
 3 
 4 def print_process(i, n, down):
 5     """
 6     i为节点的层数
 7     n为总层数
 8     down==true 凹;down==false 凸
 9     """
10     if i > n:
11         return
12     print_process(i+1, n, True)
13     if down:
14         print("凹")
15     else:
16         print("凸")
17     print_process(i+1, n, False)

 

上一篇:golang-bitmap


下一篇:题解 P2081 [NOI2012] 迷失游乐园