- 博客(102)
- 资源 (11)
- 收藏
- 关注
原创 组合非递归解法
#include #include #include using namespace std; /********************* 组合非递归解法 **********************/ void Combin_NR(char c[]) { int len=strlen(c); char bt=1; while(bt!=pow(2,len))
2012-10-09 21:53:43
148
原创 四道有趣的单链表面试题
#include #include #include #include #include #include using namespace std; /****************************************** 四道有趣的单链表面试题 *******************************************/ typedef
2012-09-30 17:40:44
448
原创 把一个字符串的大写字母放到字符串的后面
#include #include using namespace std; /****************************************** 把一个字符串的大写字母放到字符串的后面, 各个字符的相对位置不变,不能申请额外的空间 *******************************************/ char *func(char *string)
2012-09-30 16:04:30
321
原创 字符串匹配
#include #include /****************************** 字符串匹配 *******************************/ /**穷举法与自动机**/ void BF1(char *originstring,char *substring)//复杂度我O(nm) { size_t i=0,j=0;
2012-09-29 21:47:53
248
1
原创 华为机试-字符串字串替换为新串
#include #include /*********************** 字符串字串替换为新串 例如:原串:abcdabef 字串:ab 新串:w 输出为:wcdwef ps:新串的长度要小于字串 ************************/ //一般方法,穷举法,复杂度为O(nm) char *ReplaceSubString(char
2012-09-29 16:33:49
1482
原创 int和unsigned int的求和问题
#include int main() { int a=-6; unsigned int b=4; printf("a: %x\n",a); printf("a: %x\n",b); int sum=a+b; printf("sum: %x\n",sum); printf("sum: %d\n",sum); printf("%u\n
2012-09-29 11:47:55
188
原创 NVIDIA笔试-不用减号实现减法
#include using namespace std; /***************** 不用减号实现减法 ******************/ #define MINUS(a,b) ((a)+~(b)+1) int main() { cout<<MINUS(100,6)<<endl; return 0; }
2012-09-29 11:24:27
276
原创 百度笔试-字符串左移
#include #include using namespace std; /********************************************************************** 字符串左移,void *pszStringRotate(char *pszString, int nCharsRotate) 比如:ABCDEFG,移3位变DEFGABC,
2012-09-28 22:00:42
275
原创 IBM面试-栈和队列的相互转换
#include #include #include using namespace std; /*************************************** IBM面试题:栈和队列的相互转换 ****************************************/ //两个栈模拟一个队列 class stack_simulate_queue { privat
2012-09-28 16:59:01
147
原创 IBM笔试-一个数的组合
#include #include /*************************************** 给出一个数N,写出其组合 例如:N=3,输出{1},{2},{3},{1,2},{1,3} {2,3},{1,2,3} ****************************************///待改进#define N 3 void compound(int a
2012-09-28 11:15:53
157
原创 IBM笔试-二进制中最高位1的位置
#include #include /*************************************** unsigned int类型的数二进制中最高位1 的位置 例如:0000 0000 0000 0001中返回0 0000 0000 1111 0000中返回7而不是4 ****************************************/ int Fi
2012-09-27 20:31:56
688
1
原创 IBM笔试-出现一次的第一个字符
#include #include /************************************ 找到字符串中只出现一次的第一个字符 例如:"aabcdecdeff",输出b *************************************/ char FindFirstChar_hash(char *str) { int hash[128]; fo
2012-09-27 20:20:53
227
1
原创 计算机通信协议
物理层: 以太网 · 调制解调器 · 电力线通信(PLC) · SONET/SDH · G.709 · 光导纤维 · 同轴电缆 · 双绞线等 数据链路层: Wi-Fi(IEEE 802.11) · WiMAX(IEEE 802.16) · ARP · RARP ·ATM · DTM · 令牌环 · 以太网 ·FDDI · 帧中继 · GPRS · EVDO ·HS
2012-09-25 17:42:05
247
原创 两个单向链表第一个公共节点
#include #include using namespace std; /************************** 两个单向链表第一个公共节点 ***************************/ typedef struct ListNode { int data; struct ListNode *next; } ListNode; //创建两个
2012-09-24 10:45:35
180
原创 中兴-数字字符串转数字(待改进)
#include #include using namespace std; int string2Int(string pStr) { int len=pStr.length(); if(len==0) return 0; int sum=0; int i=0; while(i<len) sum=sum*10+(pSt
2012-09-21 21:24:46
143
原创 中兴-固定内存块分配
#include #include using namespace std; //用栈实现简单固定大小内存块管理 //内存块的定义和初始化的代码已完成 //请实现申请函数和释放函数,每次申请或释放一块内存 #define BYTE unsigned char #define UB_NUM 80 #define UB_SIZE 20 BYTE g_UserBlock[UB_NUM][UB_SI
2012-09-21 21:15:41
237
原创 创新工场-一道题引发的思考
先看题: #include int main() { int a=100,b=150,c=200; int const *p=&b; const int *t=&b; // int *pa=&a; // int *pc=&c; printf("%d,%d",*(++p),*(--t)); return 0; } 结果为:100,20
2012-09-21 14:49:20
162
原创 创新工场-100个人按灯问题
#include using namespace std; //创新工场 100盏灯,100个人,分别编号:1,2,3,4..... //起始灯是灭的,第一个人按1,2,3,4...按灯,第二个2,4,6,8... //第n个按n,2n,3n,4n.... //问:最后还剩几盏灯? void func(int aa[],int n) { for(int i=1; i<=n; i++)
2012-09-21 11:40:41
206
原创 创新工场-字符串排列(按字典序)
#include #include #include using namespace std; //创新工场 字符串全排列(按字典序输出) //例如{a,b} 输出:aa,ab,ba,bb //字符串排列(从小到大) int compare(const void *a,const void *b) { return (*(char*)a-*(char*)b); } void st
2012-09-21 10:32:27
206
原创 链表相邻元素翻转
#include #include #include #include //#include using namespace std; //链表节点 typedef struct ListNode { char data; ListNode *next; } ListNode; /*创建链表*/ ListNode* CreatList(ListNode *head,
2012-09-15 11:54:05
157
原创 求数组最大子序列和
#include #include using namespace std; /*求数组最大子序列和*/ bool GreatestSumOfSubArray(int *array,unsigned int length,int &result, unsigned int *begin,unsigned int *end) {
2012-09-15 11:02:54
288
原创 比较两颗二叉树是否相等
#include #include #include #include using namespace std; typedef struct TreeNode { char c; TreeNode *leftchild; TreeNode *rightchild; } TreeNode; bool CompTree(TreeNode *tree1,TreeN
2012-09-14 19:00:02
417
转载 每个程序员都应该知道的8个Linux命令
每个程序员,在职业生涯的某个时刻,总会发现自己需要知道一些Linux方面的知识。我并不是说你应该成为一个Linux专家,我的意思是,当面对linux命令行任务时,你应该能很熟练的完成。事实上,学会了下面8个命令,我基本上能完成任何需要完成的任务。 注意:下面的每个命令都有十分丰富的文档说明。这篇文章并不是来详尽的展示每个命令的各种功用的。我在这里要讲的是这几个最常用的命令的最常见用法。如果你
2012-09-14 14:18:44
180
转载 关于STL~map的一点事
Map是STL的一个关联容器,它提供一对一(其中第一个可以称为关键字,每个关键字只能在map中出现一次,第二个可能称为该关键字的值)的数据处理能力,由于这个特性,它完成有可能在我们处理一对一数据的时候,在编程上提供快速通道。这里说下map内部数据的组织,map内部自建一颗红黑树(一种非严格意义上的平衡二叉树),这颗树具有对数据自动排序的功能,所以在map内部所有的数据都是有序的,后边我们会见识到有
2012-09-14 11:30:39
387
原创 字符串拼接函数的实现strcat()
#include #include #include using namespace std; //字符串拼接函数strcat() 指针 char* my_strcat1(char *dest,const char *src) { char *temp=dest; while(*dest) dest++; while(*dest++=*src++)
2012-09-13 17:13:43
279
原创 二叉树的各种操作
#include #include #include #include #include #include using namespace std; //二叉树节点描述 struct TreeNode { char data; TreeNode *LeftChild,*RightChild; }; //创建一颗二叉树 void CreatTree(TreeNode
2012-09-13 15:03:51
189
原创 字符串循环移位操作
#include #include #include using namespace std; /*memcpy和strcpy方法 */ void func1(char *Input_str,int len,int m) { char *Output_str=new char[len+1]; memcpy(Output_str,Input_str+m,len-m);
2012-09-12 17:42:32
135
转载 C++中虚函数工作原理和(虚)继承类的内存占用大小计算
一、虚函数的工作原理 虚函数的实现要求对象携带额外的信息,这些信息用于在运行时确定该对象应该调用哪一个虚函数。典型情况下,这一信息具有一种被称为 vptr(virtual table pointer,虚函数表指针)的指针的形式。vptr 指向一个被称为 vtbl(virtual table,虚函数表)的函数指针数组,每一个包含虚函数的类都关联到 vtbl。当一个对象调用了虚函数,实际
2012-09-12 11:18:28
351
转载 C/C++ union用法
http://blog.chinaunix.net/u2/84450/showart_1829958.html 在C/C++程序的编写中,当多个基本数据类型或复合数据结构要占用同一片内存时,我们要使用联合体;当多种类型,多个对象,多个事物只取其一时(我们姑且通俗地称其为“n 选1”),我们也 可以使用联合体来发挥其长处。首先看一段代码: union myun { st
2012-09-11 21:07:09
400
原创 组合和全排列递归和非递归实现
#include #include #include using namespace std; /*非递归方法,字典序法*/ void Swap(char *a,char *b) { char temp=*a; *a=*b; *b=temp; } bool IsSwap(char *str,int start,int end) { for(int i=s
2012-09-11 16:07:22
418
转载 进程通信方式
进程通信方式: 转载地址:http://blog.chinaunix.net/u3/94667/showart_2263949.html 进程间通信就是在不同进程之间传播或交换信息,那么不同进程之间存在着什么双方都可以访问的介质呢?进程的用户空间是互相独立的,一般而言是不能互相访问的,唯一的例外是共享内存区。但是,系统空间却是“公共场所”,所以内核显然可以提供这样的条件。除此以外,
2012-09-10 11:15:32
455
转载 12个有趣的C语言面试题
1.gets()函数 问:请找出下面代码里的问题: #include int main(void) { char buff[10]; memset(buff,0,sizeof(buff)); gets(buff); printf("\n The buffer entered is [%s]\n",buff); return 0; } 答
2012-09-08 17:11:19
179
原创 字符串转换成相应的数字
已知:yi er san si wu liu qi ba jiu 分别对应123456789,对一段只含有这几种字符的字符串进行转换,转换成相应的数字. #include #include using namespace std; /* 已知:yi er san si wu liu qi ba jiu 分别对应123456789 对一段只含有这几种字符的字符串进行转换,转换成相应的数字 *
2012-09-08 14:54:57
254
原创 一个文件排序到另一文件
#include #include #include #include using namespace std; //Bubble sort template void Swap(T &num1,T &num2) { T temp; temp=num1; num1=num2; num2=temp; } template void BubbleSort(
2012-09-07 15:27:31
189
转载 C++学习重点分析
C++是一种语言,仅仅是它的语法、特性、标准类库就已经是一门非常高深的课程,所以在开始学习的时候,必须先要打好基础。要知道当我们在学习它的时候重点应该注意什么。 一、#include “filename.h”和#include 的区别 #include “filename.h”是指编译器将从当前工作目录上开始查找此文件 #include 是指编译器将从标准库目录中开始查找此文件
2012-09-06 10:48:14
159
转载 全排列生成算法(一)
对于给定的集合A{a1,a2,...,an},其中的n个元素互不相同,如何输出这n个元素的所有排列(全排列)。 递归算法 这里以A{a,b,c}为例,来说明全排列的生成方法,对于这个集合,其包含3个元素,所有的排列情况有3!=6种,对于每一种排列,其第一个元素有3种选择a,b,c,对于第一个元素为a的排列,其第二个元素有2种选择b,c;第一个元素为b的排列,第二个元素也有2种选择a,c,…
2012-08-18 16:33:12
367
转载 VC++,掀起你的盖头来——谈VC++对象模型
一个C++程序员,想要进一步提升技术水平的话,应该多了解一些语言的语意细节。对于使用VC++的程序员来说,还应该了解一些VC++对于C++的诠释。Inside the C++ Object Model虽然是一本好书,然而,书的篇幅多一些,又和具体的VC++关系小一些。因此,从篇幅和内容来看,译者认为本文是深入理解C++对象模型比较好的一个出发点。 这篇文章以前看到时就觉得很好,旧文重读,
2012-08-17 21:55:00
398
转载 对KMP算法的理解
KMP算法是一种高效的模式匹配算法,复杂度可以达到O(m+n),而普通模式匹配算法的复杂度为O(m*n)。 普通模式匹配算法 从主串的第一个字符(或者给定的第pos个字符)开始和子串的第一个字符开始比较,若相等,则继续比较后面的字符。若不相等,则从主串本次开始比较的字符的下一个字符开始,与子串的第一个字符进行比较(即主串需要回退到本次比较开始字符的下一字符,模式串回退到首字符,主串
2012-08-17 21:34:08
129
转载 如何判断单链表里面是否有环【转载】
这题目还是慢有意思的。 题目:0.如何判断单链表里面是否有环? 算法的思想是设定两个指针p, q,其中p每次向前移动一步,q每次向前移动两步。那么如果单链表存在环,则p和q相遇;否则q将首先遇到null。 这里主要理解一个问题,就是为什么当单链表存在环时,p和q一定会相遇呢? 假定单链表的长度为n,并且该单链表是环状的,那么第i次迭代时,p指向元素i mod n,q指向2i
2012-08-17 21:29:55
183
转载 递归求全排列算法 8种算法 调试通过
数据结构课老师提出用递归方法求排列,要求只有一个循环语句,迷糊中,遂驾驭百度,得一篇宝文,摘记于此 原博客地址:http://course.zjnu.cn/quyt/bbs/ftbbs.asp?id=115 感谢作者详尽的描述。 另外由于近期使用C#,目标是尽快将例子中的C++程序改成C# 全排列的生成算法 全排列的生成算法就是对于给定的字符集,用有效的方法将所有可能的全排列无重复无遗
2012-08-17 20:22:58
160
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人