【刷题之路】折纸条问题

原创 2016年05月31日 20:36:56

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

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

亲身示范可以发现,第一条折痕为down,之后,每折一次都在每个折痕上面出现一个down,下面出现一个up,可以发现为一个满二叉树结构,所有节点的左子节点为up,右子节点为down

class FoldPaper {
public:
    vector<string> foldPaper(int n) {
        // write code here
        vector<string> res;
        if(n==0) return res;
        buildtree(n-1,res,1);  //调用函数,开始递归,从第一个down子树开始
        res.push_back("down"); //插入头结点,即为第一条折痕
        buildtree(n-1,res,0); //调用函数,开始递归,从第一个up子树开始
        return res;
    }
    void buildtree(int n,vector<string> &res,int flag){ //建立同时遍历满二叉树的过程,其中flag用来掌控左右节点
        if(n==0) return;
        buildtree(n-1,res,1); //从down开始递归
        if(flag==1) res.push_back("down");  //如果flag==1,则插入一个down,如果为0,则插入一个up
        else res.push_back("up");  
        buildtree(n-1,res,0);//从up开始递归
    }
};


版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

折纸问题

题目】 请把一段纸条竖着放在桌子上,然后从纸条的下边向上方对折1次,压出折痕后展开。此时折痕是凹下去的,即折痕突起的方向指向纸条的背面。如果从纸条的下边向上方连续对折2次,压出折痕后展开,此时有三条...

折纸问题

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

二叉树中序遍历变型——折纸问题

题目描述 请把纸条竖着放在桌子上,然后从纸条的下边向上方对折,压出折痕后再展 开。此时有1条折痕,突起的⽅向指向纸条的背面,这条折痕叫做“下”折痕 ;突起的方向指向纸条正面的折痕叫做“上”折痕。如...

判断纸条折痕的上下方向

题目:来自脑客爱刷题 给一个很长很窄的纸条,把纸条竖着放在桌子上,然后从纸条的下边向上方对折1次,压出折痕后展开,此时折痕是凹下去的,也就是突起的方向指向纸条的下方; 如果从纸条的下边向上方对折2...

折纸问题

折纸问题(java版)

每日一题(68) - 复杂链表的复制

题目和思路来自剑指Offer 题目 举例 思路:难点是怎么确定兄弟指针的指向。 思路(1)使用Map确定兄弟指针的指向 如上例,输入数据为 A,B,C,D、E 建立的map: A - A' B...

复杂链表的复制

本文参考:http://zhedahht.blog.163.com/blog/static/254111742010819104710337/ 题目:有一个复杂链表,其结点除了有一个m_pNext指...

各大IT公司校园招聘程序猿笔试、面试题集锦

百度一面 1、给定一个字符串比如“abcdef”,要求写个函数编程“defabc”,位数是可变的。这个比较简单,我用的是strcpy和memcpy,然后他问有什么优化的办法,我就不知道了。 2...

快速排序、希尔排序、插入排序、选择排序、归并排序、堆排序总结

一、快速排序的基本思想      设当前待排序的无序区为R[low..high],利用分治法可将快速排序的基本思想描述为: ①分解:      在R[low..high]中任选一个记录作为基准...

复杂链表的复制 java

剑指offer题目 用java实现,ac通过 Q:有一个复杂链表,其结点除了有一个m_pNext指针指向下一个结点外,还有一个m_pSibling指向链表中的任一结点或者NULL。请完成函数Com...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)