【题目】
请把纸条竖着放在桌⼦上,然后从纸条的下边向上⽅对折,压出折痕后再展 开。此时有1条折痕,突起的⽅向指向纸条的背⾯,这条折痕叫做“下”折痕 ;突起的⽅向指向纸条正⾯的折痕叫做“上”折痕。如果每次都从下边向上⽅ 对折,对折N次。请从上到下计算出所有折痕的⽅向。
给定折的次数n,请返回从上到下的折痕的数组,若为下折痕则对应元素为"down",若为上折痕则为"up".
测试样例:
1
返回:["down"]
【分析】
实际操作后,发现折纸两次的结果是下下上,多次折纸实际上是一棵二叉树。如图,就是两次折叠结果。
所以,由于在纸上看折痕都是下下上这样的顺序,所以多次折叠实际上就是二叉树右-中-左的遍历。但这道题没有提供二叉树,我们也不可能为这样一个小问题去create一个二叉树。那就用数组吧。
但是,使用数组的递归是很有技巧的,先看代码: