C++代码
xiaoxieqingfa
Primary Coder
展开
-
华为机试-字符串字串替换为新串
#include #include /***********************字符串字串替换为新串例如:原串:abcdabef 字串:ab 新串:w 输出为:wcdwefps:新串的长度要小于字串************************///一般方法,穷举法,复杂度为O(nm)char *ReplaceSubString(char原创 2012-09-29 16:33:49 · 1487 阅读 · 0 评论 -
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 · 192 阅读 · 0 评论 -
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 · 283 阅读 · 0 评论 -
四道有趣的单链表面试题
#include #include #include #include #include #include using namespace std;/****************************************** 四道有趣的单链表面试题*******************************************/typedef原创 2012-09-30 17:40:44 · 452 阅读 · 0 评论 -
把一个字符串的大写字母放到字符串的后面
#include #include using namespace std;/******************************************把一个字符串的大写字母放到字符串的后面,各个字符的相对位置不变,不能申请额外的空间*******************************************/char *func(char *string)原创 2012-09-30 16:04:30 · 324 阅读 · 0 评论 -
字符串匹配
#include #include /****************************** 字符串匹配*******************************//**穷举法与自动机**/void BF1(char *originstring,char *substring)//复杂度我O(nm){ size_t i=0,j=0;原创 2012-09-29 21:47:53 · 252 阅读 · 1 评论 -
百度笔试-字符串左移
#include #include using namespace std;/**********************************************************************字符串左移,void *pszStringRotate(char *pszString, int nCharsRotate)比如:ABCDEFG,移3位变DEFGABC,原创 2012-09-28 22:00:42 · 277 阅读 · 0 评论 -
IBM面试-栈和队列的相互转换
#include #include #include using namespace std;/***************************************IBM面试题:栈和队列的相互转换****************************************///两个栈模拟一个队列class stack_simulate_queue{privat原创 2012-09-28 16:59:01 · 148 阅读 · 0 评论 -
IBM笔试-一个数的组合
#include #include /***************************************给出一个数N,写出其组合例如:N=3,输出{1},{2},{3},{1,2},{1,3}{2,3},{1,2,3}****************************************///待改进#define N 3void compound(int a原创 2012-09-28 11:15:53 · 165 阅读 · 0 评论 -
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 · 694 阅读 · 1 评论 -
IBM笔试-出现一次的第一个字符
#include #include /************************************找到字符串中只出现一次的第一个字符例如:"aabcdecdeff",输出b*************************************/char FindFirstChar_hash(char *str){ int hash[128]; fo原创 2012-09-27 20:20:53 · 231 阅读 · 1 评论 -
字符串拼接函数的实现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 · 283 阅读 · 0 评论 -
两个单向链表第一个公共节点
#include #include using namespace std;/**************************两个单向链表第一个公共节点***************************/typedef struct ListNode{ int data; struct ListNode *next;} ListNode;//创建两个原创 2012-09-24 10:45:35 · 182 阅读 · 0 评论 -
创新工场-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 · 210 阅读 · 0 评论 -
中兴-数字字符串转数字(待改进)
#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 · 148 阅读 · 0 评论 -
创新工场-字符串排列(按字典序)
#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 · 211 阅读 · 0 评论 -
中兴-固定内存块分配
#include #include using namespace std;//用栈实现简单固定大小内存块管理//内存块的定义和初始化的代码已完成//请实现申请函数和释放函数,每次申请或释放一块内存#define BYTE unsigned char#define UB_NUM 80#define UB_SIZE 20BYTE g_UserBlock[UB_NUM][UB_SI原创 2012-09-21 21:15:41 · 242 阅读 · 0 评论 -
组合非递归解法
#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 · 152 阅读 · 0 评论 -
字符串循环移位操作
#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 · 140 阅读 · 0 评论 -
链表相邻元素翻转
#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 · 160 阅读 · 0 评论 -
求数组最大子序列和
#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 · 289 阅读 · 0 评论 -
比较两颗二叉树是否相等
#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 · 418 阅读 · 0 评论 -
组合和全排列递归和非递归实现
#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 · 421 阅读 · 0 评论 -
二叉树的各种操作
#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 · 191 阅读 · 0 评论 -
利用最大堆排序(c++)
// abstract class max priority queue// all methods are pure virtual functions#ifndef maxPriorityQueue_#define maxPriorityQueue_using namespace std;templateclass maxPriorityQueue { public:原创 2012-07-25 11:11:14 · 157 阅读 · 0 评论 -
各种查找汇总
二分查找//二分查找法(递归调用)erfenfa1.cpp#include#include#includeusing namespace std;double a[10]= {1.1,1.3,1.5,1.7,1.9,2.1,2.3,2.5,2.7,2.9};void binsrch(int s,int r,double x){ int m; m=(s+r)/2;原创 2012-08-09 11:19:16 · 133 阅读 · 0 评论 -
二叉树的类定义(c++)
//链表二叉树的节点类templateclass BinaryTreeNode{ friend void Visit(BinaryTreeNode*); friend void InOrder(BinaryTreeNode*); friend void PreOrder(BinaryTreeNode*); friend void PostOrder(Binar原创 2012-07-23 17:06:05 · 368 阅读 · 0 评论 -
桶排序C++
//桶排序bucketsort.cpp#include#include#include#includeusing namespace std;//欲桶排序的数组长度const int SIZE=12;void bucketSort(int []);void distributeElements(int [],int [][SIZE],int);void collectEleme原创 2012-08-06 14:54:08 · 309 阅读 · 0 评论 -
桶排序
从《基于比较的排序结构总结 》中我们知道:全依赖“比较”操作的排序算法时间复杂度的一个下界O(N*logN)。但确实存在更快的算法。这些算法并不是不用“比较”操作,也不是想办法将比较操作的次数减少到 logN。而是利用对待排数据的某些限定性假设 ,来避免绝大多数的“比较”操作。桶排序就是这样的原理。 桶排序的基本思想 假设有一组长度为N的待排关键字序列K[1..转载 2012-08-06 11:23:33 · 183 阅读 · 0 评论 -
分而治之算法--归并排序
// iterative merge sort #ifndef mergeSort_#define mergeSort_using namespace std;template void mergeSort(T a[], int n){// Sort a[0 : n - 1] using the merge sort method. T *b = new T [n];原创 2012-08-01 15:33:19 · 173 阅读 · 0 评论 -
整数转换为字符串
//整数转换为字符串//@author jaron#include #include #include using namespace std;int main(void){ int n; cout<<"Input a integer: "; cin>>n; vector vec; while(n) { vec.push原创 2012-07-03 16:03:32 · 127 阅读 · 0 评论 -
字符串转换成整数
//字符串转换成整数//@author jaron#include #include #include #include #include using namespace std;bool check(const string &str){ for(int i=0;i<str.size();i++) if(str[i]'9') return 0;原创 2012-07-03 14:55:52 · 142 阅读 · 0 评论 -
计算一个字节(byte)里有多少bit被置1
//计算一个字节(byte)里有多少bit被置1//@author jaron#include #include //#include #include using namespace std;void count(char ch){ int num=0; while(ch!=0) { num+=ch&1; ch=ch>>1原创 2012-07-03 10:35:44 · 725 阅读 · 0 评论 -
寻找电路布线最短路径
//寻找电路布线最短路径bool FindPath(Position start,Position finish,int& PathLen,Position * &path){ //寻找从start到finish的路径 //如果成功,则返回true,否则返回false //如果空间不足,则引发异常NoMem if((start.row==finish.row)&原创 2012-07-12 19:56:06 · 141 阅读 · 0 评论 -
将一个链表(linked list)逆序(C++代码)
//将一个链表(linked list)逆序//@author jaron#include #include #include #include using namespace std;struct Node{ int data; Node *next;};Node *creatLink(int n){ Node *p,*head; srand(15原创 2012-07-02 21:28:48 · 298 阅读 · 0 评论 -
括号匹配(Stack)
//#include //#include //#include //#include //#include ////using namespace std;//typedef int Status;//typedef struct STU//{// char name[10];// char stuno[10];// int age;// int score;//}原创 2012-07-11 17:19:27 · 138 阅读 · 0 评论 -
稀疏矩阵快速转置c++
//稀疏矩阵的快速转置(数组表示)template void SparseMatrix::Transpose(SparseMatrix& b)const{ //把*this的转置结果送入b //确定b有足够的空间 if(terms>b.MaxTerms) thro NoMem(); //设置转置特征 b.cols=rows; b.rows=c原创 2012-07-11 15:52:50 · 354 阅读 · 0 评论 -
堆栈(Stack)的定义(数组和链表)
//堆栈(Stack)的类定义(数组)templateclass Stack{//LIFO对象public: Stack(int MaxStackSize=10); ~Stack(){delete []stack;} bool IsEmpty() const {return top==-1;} bool IsFull() c原创 2012-07-11 16:32:55 · 87 阅读 · 0 评论 -
NP-复杂问题之箱子转载问题(最大赢者树和最先匹配法)c++
// abstract class winner tree// all methods are pure virtual functions#ifndef winnerTree_#define winnerTree_using namespace std;templateclass winnerTree { public: virtual ~winnerTre原创 2012-07-26 15:43:28 · 344 阅读 · 0 评论 -
字符串转换成相应的数字
已知: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 · 259 阅读 · 0 评论