摘要: 编程实现两个正整数的除法,当然不能用除法操作符。//编程实现两个正整数的除法,当然不能用除法操作符int div(const int x, const int y){ int left_num = x; int result = 0; int multi; while (left_num >= y) //模拟小学学过的竖式除法运算 { multi = 1; while (y * multi > 1)) { multi = multi << 1; } result +=... 阅读全文
posted @ 2013-10-07 10:21 xmuliushuo 阅读(202) 评论(0) 推荐(0)
摘要: 原文地址:http://www.ahathinking.com/archives/186.html给定N对括号,输出其所有的合法的组合状态,例如,N=3,所有的合法状态为:"((()))”, “(()())”, “(())()”, “()(())”, “()()()”思路:还是深搜DFS的思路,深搜的过程关键在于记录已经用掉的左括号个数和右括号的个数,当用过的左括号个数小于右括号则非法;当二者个数和大于2N则非法;当二者个数相等且数目等于2N则为合法。代码如下:#includeusing namespace std;#define PAIR 50char str[PAIR * 2 + 阅读全文
posted @ 2013-10-02 15:44 xmuliushuo 阅读(299) 评论(0) 推荐(0)
摘要: 参考文献地址:http://blog.csdn.net/hackbuteer1/article/details/8035261http://happyprince.iteye.com/blog/1849152http://blog.csdn.net/zhanglei8893/article/details/6230233http://www.ahathinking.com/archives/135.htmlhttp://blog.csdn.net/hackbuteer1/article/details/7542774http://blog.csdn.net/v_JULY_v/article/d 阅读全文
posted @ 2013-09-28 12:03 xmuliushuo 阅读(525) 评论(1) 推荐(0)
摘要: 参考文献地址:http://blog.csdn.net/luckyxiaoqiang/article/details/7518888http://blog.csdn.net/hackbuteer1/article/details/8022138http://www.cnblogs.com/venow/archive/2012/08/31/2664877.html树是一种比较重要的数据结构,尤其是二叉树。二叉树是一种特殊的树,在二叉树中每个节点最多有两个子节点,一般称为左子节点和右子节点(或左孩子和右孩子),并且二叉树的子树有左右之分,其次序不能任意颠倒。二叉树是递归定义的,因此,与二叉树有关的 阅读全文
posted @ 2013-09-27 10:50 xmuliushuo 阅读(354) 评论(0) 推荐(0)
摘要: 原文地址:http://www.wypblog.com/archives/211http://blog.csdn.net/wuzhekai1985/article/details/6635733一般情况下,编写一个类,是可以在栈或者堆分配空间。但有些时候,你想编写一个只能在栈或者只能在堆上面分配空间的类。这能不能实现呢?肯定是可以的。只能在堆上分配空间:我们可将类的析构函数用private来修饰,也就是把析构函数私有化,因为自动变量与静态变量的对象都在释放空间的时候都需要访问析构函数。若析构函数私有,外面就不能调用,这时候会产生编译错误,这样就达到了只能在堆上分配空间了。但是,把析构函数私有化 阅读全文
posted @ 2013-09-24 17:34 xmuliushuo 阅读(393) 评论(0) 推荐(0)
摘要: 原文地址:http://blog.csdn.net/v_july_v/article/details/6712171查找一个字符串中的最长回文字串,可以使用扩展法。从一个字符开始,向两边扩展,看看最多能到多长,使其保持为回文。具体而言,我们可以枚举中心位置,然后再在该位置上用扩展法,记录并更新得到的最长的回文长度,即为所求。代码如下:/** *find the longest palindrome in a string, n is the length of string s *Copyright(C) fairywell 2011 */ int LongestPalindrome... 阅读全文
posted @ 2013-09-21 11:48 xmuliushuo 阅读(320) 评论(0) 推荐(0)
摘要: 原文地址:http://blog.csdn.net/hackbuteer1/article/details/7968623问题描述给定一个字符串,求出其最长重复子串例如:abcdabcd最长重复子串是 abcd,最长重复子串可以重叠例如:abcdabcda,这时最长重复子串是 abcda,中间的 a 是被重叠的。直观的解法是,首先检测长度为 n - 1 的字符串情况,如果不存在重复则检测 n - 2, 一直递减下去,直到 1 。这种方法的时间复杂度是 O(N * N * N),其中包括三部分,长度纬度、根据长度检测的字符串数目、字符串检测。改进的方法是利用后缀数组后缀数组是一种数据结构,对一个 阅读全文
posted @ 2013-09-18 10:14 xmuliushuo 阅读(418) 评论(0) 推荐(0)
摘要: 1.Linux链接概念Linux链接分两种,一种被称为硬链接(Hard Link),另一种被称为符号链接(Symbolic Link)。默认情况下,ln命令产生硬链接。【硬连接】硬连接指通过索引节点来进行连接。在Linux的文件系统中,保存在磁盘分区中的文件不管是什么类型都给它分配一个编号,称为索引节点号(Inode Index)。在Linux中,多个文件名指向同一索引节点是存在的。一般这种连接就是硬连接。硬连接的作用是允许一个文件拥有多个有效路径名,这样用户就可以建立硬连接到重要文件,以防止“误删”的功能。其原因如上所述,因为对应该目录的索引节点有一个以上的连接。只删除一个连接并不影响索引节 阅读全文
posted @ 2013-09-16 20:36 xmuliushuo 阅读(163) 评论(0) 推荐(0)
摘要: 原文地址:http://blog.csdn.net/hackbuteer1/article/details/7486748题目:已知随机函数rand(),以p的概率产生0,以1-p的概率产生1,现在要求设计一个新的随机函数newRand(), 使其以1/n的等概率产生1~n之间的任意一个数。解决思路:可以通过已知随机函数rand()产生等概率产生0和1的新随机函数Rand(),然后调用k(k为整数n的二进制表示的位数)次Rand()函数,得到一个长度为k的0和1序列,以此序列所形成的整数即为1--n之间的数字。注意:从产生序列得到的整数有可能大于n,如果大于n的话,则重新产生直至得到的整数不大 阅读全文
posted @ 2013-09-11 09:47 xmuliushuo 阅读(285) 评论(0) 推荐(0)
摘要: 原文地址:http://www.cnblogs.com/biyeymyhjob/archive/2012/07/24/2607173.html1.重载 所谓函数重载是指同一个函数名可以对应着多个函数的实现。例如,可以给函数名add()定义多个函数实现,该函数的功能是求和,即求两个操作数的和。其中,一个函数实现是求两个int型数之和,另一个实现是求两个浮点型数之和,再一个实现是求两个复数的和。每种实现对应着一个函数体,这些函数的名字相同,但是函数的参数的类型不同。这就是函数重载的概念。函数重载在类和对象的应用尤其重要。 函数重载要求编译器能够唯一地确定调用一个函数时应执行哪个函数代码,即采用哪个 阅读全文
posted @ 2013-09-06 20:41 xmuliushuo 阅读(192) 评论(0) 推荐(0)