面试珠玑
文章平均质量分 77
0909LQ
小陈醋的代码进阶之路
展开
-
判断一个字符串是否是合法IP地址
思路:输入字符串的时候,把分隔符“.”读取出来,然后判断分隔符旁边的数字是否在0~~255之间,然后判断是否合法。#include "stdafx.h"#include #include using namespace std;bool IsValidIp(char* str){ if(str == NULL) { return false; } char a[40转载 2015-08-31 15:31:50 · 9018 阅读 · 3 评论 -
哈希表及处理冲突的方法
文章来源:http://blog.sina.com.cn/s/blog_6fd335bb0100v1ks.html哈希法又称散列法、杂凑法以及关键字地址计算法等,相应的表称为哈希表。这种方法的基本思想是:首先在元素的关键字k和元素的存储位置p之间建立一个对应关系f,使得p=f(k),f称为哈希函数。创建哈希表时,把关键字为k的元素直接存入地址为f(k)的单元;以后当查找关键字为k的元素时,转载 2015-10-06 10:57:55 · 377 阅读 · 0 评论 -
strstr的实现
函数名: strstr 功 能: 在串中查找指定字符串的第一次出现 用 法: char *strstr(char *str1, char *str2); 程序例: char* strstr ( const char * str1, const char * str2 ){char *cp = (char *) str1;//cast const ->varia转载 2015-10-06 22:30:34 · 299 阅读 · 0 评论 -
memset()的效率以及源码分析
文章来源:http://blog.csdn.net/hackbuteer1/article/details/7343189void *memset(void *s, int ch, size_t n);作用:将s所指向的某一块内存中的每个字节的内容全部设置为ch指定的ASCII值, 块的大小由第三个参数指定,这个函数通常为新申请的内存做初始化工作。不知道有没有像我一样把memset转载 2015-09-17 12:03:59 · 452 阅读 · 0 评论 -
常用10个LINUX命令说明
LS命令-作用:显示目录内容,类似DOS下的DIR-格式:LS【options】【filename】-常用参数: >-a:all,不隐藏任何以"."字符开始的文件 >-l:使用较长的格式列出信息 >-r:按照文件名的逆序打印输出 >-F:加上文件类型的指示符 ls -lF | grep / 过滤 man ls 查询ls的帮助文件转载 2015-10-06 21:31:58 · 8234 阅读 · 1 评论 -
用位运算实现四则运算之加减乘除
听同学百度二面中,不准用四则运算操作符来实现四则运算。一想就想到了计算机组成原理上学过的。位运算的思想可以应用到很多地方,这里简单的总结一下用位运算来实现整数的四则运算。加法运算:[cpp] view plaincopyint AddWithoutArithmetic(int num1,int num2) { if(num2==0) return num转载 2015-09-18 16:28:51 · 338 阅读 · 0 评论 -
C++中的explicit关键字
在C++程序中很少有人去使用explicit关键字,不可否认,在平时的实践中确实很少能用的上。再说C++的功能强大,往往一个问题可以利用好几种C++特性去解决。但稍微留心一下就会发现现有的MFC库或者C++标准库中的相关类声明中explicit出现的频率是很高的。了解explicit关键字的功能及其使用对于我们阅读使用库是很有帮助的,而且在编写自己的代码时也可以尝试使用。既然C++语言提供这种特性转载 2015-10-10 08:39:53 · 303 阅读 · 0 评论 -
迅雷2012校园招聘笔试题
文章来源:http://blog.csdn.net/hackbuteer1/article/details/74542521、微机中1K字节表示的二进制位数是()A、1000 B、0X1000 C、1024 D、0X10242、设C语言中,一个int型数据在内存中占2个字节,则unsigned int 型数据的取值范围为()A、0--- 255 B、0-转载 2015-09-20 20:58:02 · 420 阅读 · 0 评论 -
2014届华为校园招聘机试题
文章来源:http://blog.csdn.net/hackbuteer1/article/details/11132567华为2014校园招聘的机试题目和2013年的完全一样。一、题目描述(60分):通过键盘输入一串小写字母(a~z)组成的字符串。请编写一个字符串过滤程序,若字符串中出现多个相同的字符,将非首次出现的字符过滤掉。比如字符串“abacacde”过滤结果为“abc转载 2015-10-09 11:05:15 · 406 阅读 · 0 评论 -
华为2013年机试题
题目一:子串分离 题目描述: 通过键盘输入任意一个字符串序列,字符串可能包含多个子串,子串以空格分隔。请编写一个程序,自动分离出各个子串,并使用’,’将其分隔,并且在最后也补充一个’,’并将子串存储。 如果输入“abc def gh i d”,结果将是abc,def,gh,i,d, 要求实现函数: void DivideString(const ch原创 2015-10-09 22:54:00 · 353 阅读 · 0 评论 -
求二叉树的宽度
2)求二叉树的宽度我们可以把二叉树中每层的节点依次放入一个队列中。设置一个变量width用于存储树的宽度。每一层的节点入队时计算该层节点的数目,如果该层次节点的数目大于width的值,那么把该层次节点的数目赋给width.如此,对二叉树按层遍历一遍之后width中保存的就是该二叉树的宽度。int WidthOfTheTree(Node* pRoot){ if(pRoot==NU转载 2015-11-11 21:16:31 · 479 阅读 · 0 评论 -
网络爬虫:URL去重策略之布隆过滤器(BloomFilter)的使用
前言: 最近被网络爬虫中的去重策略所困扰。使用一些其他的“理想”的去重策略,不过在运行过程中总是会不太听话。不过当我发现了BloomFilter这个东西的时候,的确,这里是我目前找到的最靠谱的一种方法。 如果,你说URL去重嘛,有什么难的。那么你可以看完下面的一些问题再说这句话。关于BloomFilter: Bloom filter 是由 Ho转载 2015-11-12 00:04:13 · 5669 阅读 · 0 评论 -
几种常用的操作系统进程调度算法
常用的操作系统进程调度算法大致有:先来先服务调度算法,短进程优先调度算法,优先级调度算法(抢占式调度算法和非抢占式调度算法),基于时间片的轮转调度算法。一、先来先服务和短作业(进程)优先调度算法1.先来先服务调度算法先来先服务(FCFS)调度算法是一种最简单的调度算法,该算法既可用于作业调度,也可用于进程调度。当在作业调度中采用该算法时,每次调度都是从后备作业队列中转载 2015-11-11 21:41:17 · 771 阅读 · 0 评论 -
如何用两个队列实现一个栈,并分析有关栈操作的运行时间。
栈的操作主要有:入栈,出栈,返回栈顶元素,返回栈长度以及判断栈是否为空。 若用两个queue实现(可以定义成queue的数组queue q[2]),可以增加一个currentIndex来指向当前选中的queue。入栈操作可以直接把元素加到queue里,即 queue[currentIndex].push(element),时间复杂度为O(1),出栈操作要复杂一些,还是因为栈和队列元素的出入转载 2015-09-17 09:28:12 · 686 阅读 · 0 评论 -
微策略2011校园招聘笔试题(找出数组中两个只出现一次的数字)
1、8*8的棋盘上面放着64个不同价值的礼物,每个小的棋盘上面放置一个礼物(礼物的价值大于0),一个人初始位置在棋盘的左上角,每次他只能向下或向右移动一步,并拿走对应棋盘上的礼物,结束位置在棋盘的右下角,请设计一个算法使其能够获得最大价值的礼物。[cpp] view plaincopy//经典的动态规划 //dp[i][j] 表示到棋盘位置(i,j)上可以得到的最大礼转载 2015-09-13 19:57:40 · 491 阅读 · 0 评论 -
后缀数组求最长重复子串
问题描述给定一个字符串,求出其最长重复子串例如:abcdabcd最长重复子串是 abcd,最长重复子串可以重叠例如:abcdabcda,这时最长重复子串是 abcda,中间的 a 是被重叠的。直观的解法是,首先检测长度为 n - 1 的字符串情况,如果不存在重复则检测 n - 2, 一直递减下去,直到 1 。这种方法的时间复杂度是 O(N * N * N),其中包括三部转载 2015-09-02 09:52:48 · 528 阅读 · 0 评论 -
删除字符串中多余的空格]给定字符串,删除开始和结尾处的空格,并将中间的多个连续的空格合并成一个
#include char* RemoveExtraSpace(char* str){ if (str == NULL) { return NULL; } char* pstr = str; int Newindex = 0; bool PreSpace = true;//加一个bool值,用于判断前一个字符是否为空格,如果原创 2015-09-07 16:40:27 · 1746 阅读 · 0 评论 -
浙江大华2011.10.10校园招聘会笔试题
请写出下面程序的输出结果:(答案在下面)1、[cpp] view plaincopyint count = 3; int main(void) { int i, sum, count = 2; for(i=0,sum=0; i { static int count = 4; count++;转载 2015-09-11 09:17:01 · 410 阅读 · 0 评论 -
错题(二)
2、[cpp] view plaincopyvoid func(char str[50]) { printf("A %d B %d ",sizeof(str), strlen(str)); } int main(void) { char stra[] = "HelloWorld"; char *strb = stra; printf(原创 2015-09-10 21:02:24 · 346 阅读 · 0 评论 -
亚信联创2011.9.17招聘会笔试题
3、const 有什么用途?(请至少说明两种)答:(1)可以定义 const 常量。(2)const可以修饰函数的参数、返回值,甚至函数的定义体。被const修饰的东西都受到强制保护,可以预防意外的变动,能提高程序的健壮性。5、下面是交换两个double型数据的函数, [cpp] view plaincopyvoid swap(转载 2015-09-11 13:33:55 · 645 阅读 · 0 评论 -
写一个函数,完成内存之间的拷贝。[考虑问题是否全面]
#include "stdafx.h"#include #include #include void *memmove(void *dest, const void *src, size_t count){ assert((dest != NULL) && (src != NULL)); //安全检查 assert(count > 0); char *psrc =原创 2015-09-28 15:30:28 · 1995 阅读 · 1 评论 -
C++中的static关键字 (转载)
文章来源:http://blog.csdn.net/hackbuteer1/article/details/7487694C++的static有两种用法:面向过程程序设计中的static和面向对象程序设计中的static。前者应用于普通变量和函数,不涉及类;后者主要说明static在类中的作用。一、面向过程设计中的static1、静态全局变量在全局变量前,加上关键字static转载 2015-09-28 16:51:05 · 256 阅读 · 0 评论 -
任意长度的高精度大整数加法
文章来源:http://blog.csdn.net/hackbuteer1/article/details/6709101方法:这里用了数据结构栈,实际上栈更方便实现高精度加法。步骤:1、第一个数据加数按输入顺序(高位到低位)入栈1。此时栈顶为最低位 2、第二个数据加数按输入顺序(高位到低位)入栈2。此时栈顶为最低位 3、将栈1、栈转载 2015-09-13 11:12:26 · 525 阅读 · 0 评论 -
大端模式和小端模式
文章来源:http://blog.csdn.net/hackbuteer1/article/details/7722667#comments在 各种计算机体系结构中,对于字节、字等的存储机制有所不同,因而引发了计算机 通信领 域中一个很重要的问题,即通信双方交流的信息单元(比特、字节、字、双字等等)应该以什么样的顺序进行传送。如果不达成一致的规则,通信双方将无法进行正 确的编/译码从而导致转载 2015-09-14 09:17:36 · 301 阅读 · 0 评论 -
经典面试题
文章来源:http://blog.csdn.net/hackbuteer1/article/details/68860211、编程实现两个正整数的除法,当然不能用除法操作符。[cpp] view plaincopy//编程实现两个正整数的除法,当然不能用除法操作符 int div(const int x, const int y) { int le转载 2015-09-13 17:24:08 · 327 阅读 · 0 评论 -
友元实例:友元类及友元函数
学习了c++这么久,一直没有对友元进行了解,据说友元不是特别好用(据说,不是我说的),因此直到今天才去了解。其实友元确实不是很常用,但友元功能确实很实用,它不但能够释放类中的非公有成员,同时还能保证了类的封装性。用户可以有选择为具体的类或函数赋予“通行证”。还是比较灵活的。比如:某个类去访问另一个类的私有成成员,或者一个函数去访问某个类的私有成员等等,都可以使用友元来实现。 下面就转载 2015-09-29 22:14:20 · 396 阅读 · 0 评论 -
C++中智能指针的设计和使用
原文地址:http://blog.csdn.net/hackbuteer1/article/details/7561235 智能指针(smart pointer)是存储指向动态分配(堆)对象指针的类,用于生存期控制,能够确保自动正确的销毁动态分配的对象,防止内存泄露。它的一种通用实现技术是使用引用计数(reference count)。智能指针类将一个计数器与类指向的对象相关联,引用计转载 2015-09-29 22:13:18 · 205 阅读 · 0 评论 -
逃出迷宫完整算法C++
迷宫图案,白色代表通道,黑色代表墙。 迷宫入口坐标(1,1),出口坐标(8,8) 0 1 2 3 4 5 6 7 8 9 0■■■■■■■■■■ 1■□□■□□□■□■ 2■□□■□□□■□■ 3■□□□□■■□□■ 4■□■■■□□□□■ 5■□□□■□□□□■ 6■□■□□□■□□■ 7■□■■■□■■□■ 8■■□□□□□□□■转载 2015-10-13 22:27:33 · 977 阅读 · 0 评论