zoukankan      html  css  js  c++  java
  • 折纸运算

    请把纸条竖着放在桌⼦上,然后从纸条的下边向上⽅对折,压出折痕后再展 开。此时有1条折痕,突起的⽅向指向纸条的背⾯,这条折痕叫做“下”折痕 ;突起的⽅向指向纸条正⾯的折痕叫做“上”折痕。如果每次都从下边向上⽅ 对折,对折N次。请从上到下计算出所有折痕的⽅向。

    给定折的次数n,请返回从上到下的折痕的数组,若为下折痕则对应元素为"down",若为上折痕则为"up".

    测试样例:
    1
    返回:["down"]
     1 package com.offer;
     2 import java.util.*;
     3 public class FoldPaper {
     4 
     5     public static void main(String[] args) {
     6         foldPaper(3);
     7 
     8     }
     9     public static String[] foldPaper(int n) {
    10           if(n<=0)
    11               return null;
    12             ArrayList<String> arr=new ArrayList<String>();
    13             
    14             getFolder(n,1,arr,true);//先右,后中 最后左顺序
    15             String[] res=new String[arr.size()];
    16             for(int i=0;i<arr.size();i++)
    17             {
    18                 res[i]=arr.get(i);
    19                 System.out.print(res[i]+" ");
    20             }
    21             return res;
    22             
    23         }
    24         public static void getFolder(int n,int i,ArrayList<String> str,boolean down)
    25         {//类似于中序遍历,先遍历右边,在遍历中间,最后遍历左子树
    26             if(i>n)
    27                 return;
    28             getFolder(n,i+1,str,true);//getFolder(n,i+1,str,root.right)
    29             if(down)
    30                 str.add("down");
    31             else
    32                 str.add("up");
    33             getFolder(n,i+1,str,false);
    34         }
    35 }
  • 相关阅读:
    梦心日记本V2.0终于要完工了
    上班半年大总结
    真有趣
    搞定设计模式1之策略模式
    利用GDI+制作背景颜色淡入淡出效果的按钮
    浏览器之争
    学习自定义控件
    搞定设计模式2之代理模式
    (转)学习asp.net比较完整的流程
    搞定设计模式3之中介者模式
  • 原文地址:https://www.cnblogs.com/woainifanfan/p/6805209.html
Copyright © 2011-2022 走看看