算法題 22 折紙問題 (牛客網,今日頭條)
阿新 • • 發佈:2018-08-30
-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 折紙問題 (牛客網,今日頭條)