摘要: Q:输入一个字符串,输出该字符串中字符的所有组合。 A:假设一个字符串长度为n,要求长度为m的所有组合。我们考虑字符串中一个字符,我们有两种选择:将其加入组合或者不加入组合。当加入组合时,我们还需要从该字符后面的子串中选取m-1个字符;当不加入组合时,我们需要从该字符后面的子串中选取m个字符,所以递归+回溯即可解出。 #include <iostream>#include <vect... 阅读全文
posted @ 2012-06-14 20:07 Cavia 阅读(453) 评论(0) 推荐(0) 编辑
摘要: Q:输入一个字符串,打印出该字符串中字符的所有排列 A:以abc为例,我们首先将a固定在第一位,然后排列bc,当bc排列完成后,我们会将b固定在第一位,也就是交换a和b的位置,变成bac,然后排列ac,当ac排列完成后,我们需要将c固定在第一位,先将a和b的位置复原,在交换a和c的位置即可。因此,用递归来求解再自然不过。对于字符串abcdedfgh….,在以begin为开头的子串中,我们要... 阅读全文
posted @ 2012-06-14 19:45 Cavia 阅读(1012) 评论(0) 推荐(0) 编辑
摘要: 从低地址到高地址依次为代码段,数据段,bss段,堆,栈,命令行参数和环境变量,其中的那些段来源于elf文件(bss段并不存储在elf文件中);另外,可以看出,栈向低地址生长,而堆向高地址生长。 阅读全文
posted @ 2012-06-14 15:35 Cavia 阅读(236) 评论(0) 推荐(0) 编辑
摘要: 每一个程序都会接收到一张环境表,与参数表一样,环境表也是一个字符指针数组,其中每个指针包含一个以null结束的C字符串的地址。全局变量environ包含了该指针数组的地址:extern char **environ;我们称environ为环境指针。环境由name=value这样的键值对组成,大多数预定义的名字完全由大写字母组成,但这只是一个惯例。ISO C定义了一个函数getenv,可以用其取环境变量1 #include <stdlib.h>2 3 //返回值:指向与name关联的value的指针,若未找到则返回NULL4 char* getenv(const char* name 阅读全文
posted @ 2012-06-14 15:29 Cavia 阅读(344) 评论(0) 推荐(0) 编辑
摘要: 阅读全文
posted @ 2012-06-14 15:13 Cavia 阅读(167) 评论(0) 推荐(0) 编辑