1. 程式人生 > >算法題 22 折紙問題 (牛客網,今日頭條)

算法題 22 折紙問題 (牛客網,今日頭條)

-s question app 數組 sample 代碼 tro quest 每次

鏈接:https://www.nowcoder.com/questionTerminal/430180b66a7547e1963b69b1d0efbd3c
來源:牛客網

請把紙條豎著放在桌?上,然後從紙條的下邊向上?對折,壓出折痕後再展 開。此時有1條折痕,突起的?向指向紙條的背?,這條折痕叫做“下”折痕 ;突起的?向指向紙條正?的折痕叫做“上”折痕。如果每次都從下邊向上? 對折,對折N次。請從上到下計算出所有折痕的?向。

給定折的次數n,請返回從上到下的折痕的數組,若為下折痕則對應元素為"down",若為上折痕則為"up".

測試樣例:
1
返回:["down"]

解題思路:實現先後再中,最後左的中序遍歷即可得到所有折痕的打印順序。(特殊的中序遍歷)

解題代碼:

# -*- coding:utf-8 -*-

class FoldPaper:
    def foldPaper(self, n):
        # write code here
        res=[]
        def inOrder(n,pos):
            if n<=0:
                return
            inOrder(n-1,order)
            if pos==order:
                res.append(down)
            
else: res.append(up) inOrder(n-1,re_order) inOrder(n,order) return res if __name__=="__main__": print(FoldPaper().foldPaper(3)) print(FoldPaper().foldPaper(2)) print(FoldPaper().foldPaper(1)) print(FoldPaper().foldPaper(0))

算法題 22 折紙問題 (牛客網,今日頭條)