- 博客(22)
- 资源 (6)
- 问答 (1)
- 收藏
- 关注
原创 字符串中去掉空格
1、去除全部空格;2、一种是去除左边空格;3、去除右边空格 想去除左右两边空格,只要先去除左边再去除右边的就行了以下是实现代码:/*去除字符串中所有空格*/voidVS_StrTrim(char*pStr) { char *pTmp = pStr; while (*pStr != '/0') { if (*pSt
2017-04-29 09:36:45 873
转载 字符串的全排列
全排列在笔试面试中很热门,因为它难度适中,既可以考察递归实现,又能进一步考察非递归的实现,便于区分出考生的水平。所以在百度和迅雷的校园招聘以及程序员和软件设计师的考试中都考到了,因此本文对全排列作下总结帮助大家更好的学习和理解。对本文有任何补充之处,欢迎大家指出。首先来看看题目是如何要求的(百度迅雷校招笔试题)。一、字符串的排列用C++写一个函数, 如 Foo(const char *
2017-04-19 17:17:35 614
原创 快速查找兄弟字符串
如果两个字符串中的字符一样,出现的次数也一样,只是出现的顺序不一样,那么他们就是兄弟字符串,比如“abc”和“bca”;要求:在字典中查找兄弟字符串?思路:1.现将字符串进行排序2.排序后的字符串是否对应相等代码: 1 #include
2017-04-19 15:12:00 744
原创 字符串的包含
给定一个长字符串a和一个短字符串b,判断短字符串b的所有字符串都是否在a中。分析:1.可以采用论询的方法。2.轮询短字符串中的每一个字符,逐个与长字符串a中的字符进行比较3.查找是否都在a中代码:#include#include#includeusing namespace std;bool StringContain(string &a,string &b
2017-04-19 15:06:40 326
原创 字符串反转
把“abcdef”反转为“defabc”1.首先,定义一个字符串的指针,字符串的长度,然后进行移位;2.再 写一个区调用上面的移位函数,然后进行反转代码:#includevoid LeftShiftone(char *s,int n){char t = s[0];for(int i=1;is[i-1] = s[i];s[n-1] = t;}v
2017-04-16 20:42:12 320
转载 树的非递归遍历(很易懂)
转载请注明出处:http://blog.csdn.net/ns_code/article/details/12977901二叉树是一种非常重要的数据结构,很多其他数据机构都是基于二叉树的基础演变过来的。二叉树有前、中、后三种遍历方式,因为树的本身就是用递归定义的,因此采用递归的方法实现三种遍历,不仅代码简洁且容易理解,但其开销也比较大,而若采用非递归方法实现三种遍历,则要用栈来
2017-04-16 14:55:49 1984 1
原创 strlen 函数的编写
1 #include 2 #include 3 using namespace std; 4 int strlen1(const char *strDest); 5 int main() 6 { 7 const char *strDest = "hello world";
2017-04-15 16:40:08 515
原创 strcpy函数编写分析
复制字符串 1 #include 2 #include 3 char *strcpy(char *strDest,const char *strSrc) 4 { 5 if((strDest == NULL) || (strSrc == NULL))
2017-04-15 16:14:50 362
原创 线性表详解
线性表概念:线性表是一个有限序列,各个表项相继排列,第一个为表头,最后一个是表尾,且每两个相邻项之间有前驱和后继的关系。线性表分为有序线性表和无序线性表。1.顺序表的存储单元La1a2...ai...an 01 i-1
2017-04-09 17:22:16 419
原创 指针数组
指针数组的概念:一个数组的各元素值为指针类型数据时,这个数组称之为指针数组。例子:*p[5]就是一维指针数组。代码实例:#includeint main(){int ar[3] = {1,2,3};int *p = ar;printf("%d\n",*p);}输出结果为1.更改输出的值只需要在输出时*p+值就可以输出想要的数组中的值。二维数组的实现:
2017-04-09 17:20:37 214
原创 C++ STL_vector
vector是表示可变大小数组的序列容器, 底层数据结构为数组 ,支持快速随机访问。就像数组一样,vector也采用的连续存储空间来存储元素。也就是意味着可以采用下标对vector的元素进行访问,和数组一样高效。但是又不像数组,它的大小是可以动态改变的,而且它的大小会被容器自动处理。本质讲,vector使用动态分配数组来存储它的元素。当新元素插入时候,这个数组需要被重新分配大小为了
2017-04-09 17:16:35 764
原创 tcp如何保证可靠性
前几天面试腾迅,几个面试提和大家分享:tcp如何保证可靠性?首先,TCP提供一种面向连接的、可靠的字节流服务。 面向连接:意味着两个使用TCP的应用(通常是一个客户和一个服务器)在彼此交换数据之前必须先建立一个TCP连接。在一个TCP连接中,仅有两方进行彼此通信。广播和多播不能用于TCP。 TCP通过下列方式来提供可靠性:1、应用数据被分割成TCP认为最适合发送的数据
2017-04-09 15:21:25 619
原创 野指针
野指针野指针的概念:“野指针”不是NULL指针,是未初始化或未清零的指针,他指向的内存地址不是程序员想要的。人们一般不会错用NULL指针,因为用if语句很容易判断。但是“野指针”是很危险的,if语句对它不起作用。野指针的成因主要有两种: 形成野指针的原因:1.指针创建后没有初始化解决方法是初始化为NULL或者指向合法内存。2.指针在使用free()和delete()函数
2017-04-09 15:12:17 311
原创 京东——分堆
小明得到了n个石头,他想把这些石头分成若干堆,每堆至少有一个石头。他把这些石堆排在一条直线上,他希望任意相邻两堆的石头数都不一样。小明最后的得分为石头数大于等于k的石堆数,问他最多能得多少分。严格地,小明把n个石头分成了m堆,每堆个数依次为a1,a2.....,am。要求满足:1、ai≥1(1≤i≤m)2、ai≠ai+1(1≤i<m)3、a1+a2+...+am=n小明想知道中大于等于的数最
2017-04-09 15:03:33 381
原创 京东笔试——异或
题目:异或运算是常见的二进制运算,给出两个n位二进制数a,b。a异或b的运算依次考虑二进制的每一位,若这一位相同,那么这一位的异或结果就是0,不同就是1。例如a=1100, b=0100。执行a异或b的运算,a的最高位是1,b的最高位是0,两个数字不同所以最高位异或结果是1;a和b次高位都是1,所以次高位异或为0;最后两位它们都是0,所以异或结果也都是0。那么a异或b的答案就是1000。现
2017-04-08 18:32:31 481
原创 360春招-剪气球
题目:小明买了一些彩色的气球用绳子串在一条线上,想要装饰房间,每个气球都染上了一种颜色,每个气球的形状都是各不相同的。我们用1到9一共9个数字表示不同的颜色,如12345则表示一串5个颜色各不相同的气球串。但小明希望得到不出现重复颜色的气球串,那么现在小明需要将这个气球串剪成多个较短的气球串,小明一共有多少种剪法?如原气球串12345的一种是剪法是剪成12和345两个气球串。注意每种剪法需满足最后
2017-04-06 17:12:34 1317
原创 360(2017春季笔试题)跑步
题目:小明同学喜欢体育锻炼,他常常去操场上跑步。跑道是一个圆形,在本题中,我们认为跑道是一个半径为R的圆形,设圆心的坐标为原点(0,0)。小明跑步的起点坐标为(R,0),他沿着圆形跑道跑步,而且一直沿着一个方向跑步。回到家后,他查看了自己的计步器,计步器显示他跑步的总路程为L。小明想知道自己结束跑步时的坐标,但是他忘记自己是沿着顺时针方向还是逆时针方向跑的了。他想知道在这两种情况下
2017-04-06 11:14:38 991
原创 递归算法
递归算法递归就是自己调用自己1.n的阶乘代码: 1 #include 2 3 int fact(int n) 4 { 5 if(n 6 { 7 printf("error!!!"); 8 return -1; 9 } 10 if(n==0) 11
2017-04-06 10:24:06 234
原创 动态内存申请与释放
动态内存申请与释放(1)malloc方式申请一维内存时,格式为:类型表示符 *变量名;变量名 = (类型标识符*)malloc(sizeof(类型标识符)*数组大小);在使用完该方式申请的内存后,必须用free()函数及时释放,格式为:free(变量名)变量名 = NULL;当申请二维内存时,格式为:类型标识符 **变量名;变量名 = (类型标识符*
2017-04-06 10:14:25 666
原创 创建远程仓库
创建远程仓库(1)直接在你在github上创建一个仓库(2)本地仓库与github上仓库关联起来git remote add origin git@github.com:happywangzhuang/learngit.git在Repository name填入learngit,其他保持默认设置,点击“Create repository”按钮,就成功地创建了一个新的Git仓库:
2017-04-06 10:05:44 338
原创 版本库
版本库(Repository)工作区有一个隐藏目录.git,这个不算工作区,而是Git的版本库。Git的版本库里存了很多东西,其中最重要的就是称为stage(或者叫index)的暂存区,还有Git为我们自动创建的第一个分支master,以及指向master的一个指针叫HEAD。我们把文件往Git版本库里添加的时候,是分两步执行的:第一步是用git add把文件添
2017-04-06 10:02:37 641
原创 git使用
1.安装git2.创建仓库(1)创建一个文件夹,创建一个文件,必须是在文件夹下相关命令:创建文件夹(mkdir ***) 创建文件 (vim ***或者touch ***)查看文件的位置 (pwd)(2).把目录变成git可以管理的仓库 命令:git init(3)把文件添加到仓库 命令:git add (4)把文件提交到仓库 命令:git com
2017-04-06 09:53:36 227
More Effective C++(中文版)
2016-10-29
有谁能够帮忙理解一下这段代码
2017-04-19
TA创建的收藏夹 TA关注的收藏夹
TA关注的人