- 博客(73)
- 资源 (3)
- 收藏
- 关注
原创 2013百度笔试 求字符串中连续出现相同字符的最大值
题目完整描述为:用递归的方式实现一个求字符串中连续出现相同字符的最大值,如aaabbcc,连续出现a的最大值为3,abbc,连续出现字符最大的值为2。
2014-08-28 19:37:51 885
原创 字符串匹配算法
1.暴力匹配算法2.KMPKMP算法mi//字符串匹配算法#include using namespace std;//暴力匹配方法bool ismatch(char *a,char *b){ int alen=strlen(a); int blen=strlen(b); int i=0; int j=0; while(i<alen&&j<blen) { if
2014-08-17 22:17:23 615
原创 深入探索对象模型 第四章 function语意学
C++支持三种类型的member functions:static,nonstatic和virtual,每一种类型被调用的方式都不同。1、Member的各种调用方式原始的“C with classes”只支持nonstatic member functions。Virtual函数是在20世纪80年代中期被加进来的,并且很显然受到许多质疑。Static member func
2014-07-31 14:31:01 796
原创 第四十七题 从1到n整数中1出现的次数
题目:输入一个整数n,求从1到n这n个整数的十进制表示中1出现的次数。例如输入12,从1到12这些整数中包含1 的数字有1,10,11和12,1一共出现了5次。思路方法:见编程之美13
2014-07-09 20:02:37 780
原创 第四十六题 复制链表
题目:二叉树节点定义struct ComplexListNode{int m_nValue;ComplexListNode* m_pNext;ComplexListNode* m_pSibling;};
2014-06-27 20:15:00 803
原创 第四十五题 包含min函数的栈
题目:定义栈的数据结构,要求添加一个min函数,能够得到栈的最小元素。要求函数min、push以及pop的时间复杂度都是O(1)。
2014-06-27 20:03:53 673
原创 第四十四题 顺时针打印矩阵
题目:输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字。例如:如果输入如下矩阵:1 2 3 45 6 7 89 10 11 1213
2014-06-27 19:59:17 637
原创 2014谷歌开发者大会发布安卓相关系统
Android L 操作系统首先是界面,谷歌重新设计了一套 UI 规范,并称之为“Material Design”,这种语言风格从一些人们常用的物品中汲取灵感,比如纸张和墨水的晕染,让屏幕空间得到最佳应用,提供尽量多的资讯信息,并且可以在智能手机、平板或桌面上提供统一的设计界面。具体风格上看,Material Design 大量使用了圆形和圆角的扁平化设计,更多的操作是通过滑动完成而不
2014-06-26 22:38:12 866
原创 第四十二题 树的子结构
题目:二叉树的结点定义如下:struct Tree{ int m_value; TreeNode* m_left; TreeNode* m_right;};输入两棵二叉树A和B,判断树B是不是A的子结构。例如,下图中的两棵树A和B,由于A中有一部分子树的结构和B是一样的,因此B就是A的子结构。
2014-06-24 18:40:06 581
原创 推荐一下程序员面试书籍
《C++ Primer》第四版《C++ Primer》第五版 :前12章 《C++标准库自学教程与参考手册第二版》英文版《C++数据结构》《C++ STL基础及应用》《Effetive C++》《C++ 模板》:前10章《More EffetiveC++》《深入探索C++对象模型》:前3章《Windows 核心编程》《设计模式》《编程之美》《程序员面
2014-06-24 13:48:56 842
原创 深入探索C++对象模型 第三章 Data语意学
1、类对象大小受三个因素影响a、virtual base和virtual function带来的vptr影响 b、 EBO (Empty Base class Optimize)空基类优化处理,EBC(Empty Base Class)占用一个字节,其他含有数据成员的从EBC派生的派生类,只会算自己数据成员的大小,不受EBC一字节的影响 c、alignment 字节对齐2、No
2014-06-23 14:11:37 750
原创 深入探索C++对象模型 第二章 构造函数语意学
1. Jerry Schwarz,iostream函数库建构师,曾为了让cin能够求得一个真假值,于是他为它定义了一个conversion运算符operator int()。但在语句cin 中,其行为出乎意料:程序原本要的是cout而不是cin!但是编译器却找到一个正确的诠释:将cin转型为整型,现在left shift operator 就可以工作了!这就是所谓的“Schwarz
2014-06-23 14:09:56 934
原创 第四十题 不用+、-、×、÷做加法
题目:如5的二进制是101,17的二进制10001。还是试着把计算分成三步:第一步各位相加但不计进位,得到的结果是10100(最后一位两个数都是1,相加的结果是二进制的10。这一步不计进位,因此结果仍然是0);第二步记下进位。在这个例子中只在最后一位相加时产生一个进位,结果是二进制的10;第三步把前两步的结果相加,得到的结果是10110,正好是22。由此可见三步走的策略对二进制也是管用的
2014-06-23 14:07:57 695
原创 Effective C++前10个条款
导读:1.explicit:构造函数声明为explicit,避免隐式类型转换,依然可以显示类型转换。禁止编译器执行非预期的类型换转。2.Pass-by-Value: 会调用拷贝构造函数,因此对于自定义的类型,最好Pass-by-Reference01 视C++为一个语言联邦:
2014-06-17 22:31:14 628
原创 深入探索C++对象模型 第一章 关于对象
1、为了实现兼容性,在C++中,struct==class,两个关键字对于编译器来说在大部分的地方是完全一样的可以互相的替代(在template的定义中有个定义,类似于 template,因为模板并没有打算兼容C,所以这里的class并不能用struct,也许是为了避免这种矛盾,所以后来用typename来替代了class ),因此当你看到这样的声明: class node; 而见到了这样的定
2014-06-17 22:22:32 736
原创 第三十九题 关于C++中类的对象的大小
#include #include #include using namespace std;class A{};class B{public: B() {} ~B() {}};class C{public: C() {} virtual ~C() {}};int main(){ printf("%d, %d, %d\n", sizeof(A), s
2014-06-17 22:16:29 712
原创 C++ 默认参数函数
函数的默认参数值,即在定义参数的时候同时给它一个初始值。在调用函数的时候,我们可以省略含有默认值的参数。也就是说,如果用户指定了参数值,则使用用户指定的值,否则使用默认参数的值。 void Func(int i = 1, float f = 2.0f, double d = 3.0){ cout }int main(void){ Func() ; //
2014-06-09 20:43:23 660
原创 第三十八题 C++面试题
题目(一):我们可以用static修饰一个类的成员函数,也可以用const修饰类的成员函数(写在函数的最后表示不能修改成员变量,不是指写在前面表示返回值为常量)。请问:能不能同时用static和const修饰类的成员函数?分析:答案是不可以。C++编译器在实现const的成员函数的时候为了确保该函数不能修改类的实例的状态,会在函数中添加一个隐式的参数const this*。但当一个成员
2014-06-06 23:19:22 614
原创 第三十七题 求取二叉树中节点的最低公共节点
题目:二叉树的结点定义如下:struct TreeNode{ int m_nvalue; TreeNode* m_pLeft; TreeNode* m_pRight;};输入二叉树中的两个结点,输出这两个结点在数中最低的共同父结点思路:求取2个节点的公共节点,rugu
2014-06-05 22:44:15 566
原创 第三十六题 标准库字符操作函数的实现
#include #include using namespace std;char *strcpy(char *dst,char *src){ assert(dst!=nullptr&&src!=nullptr); if (dst==src) { return dst; } char *returnstr=dst; while ((*dst++=*src++)!='\0'
2014-05-29 22:04:50 727
原创 第三十五题 用C++设计一个不能被继承的类
首先想到的是在C++ 中,子类的构造函数会自动调用父类的构造函数。同样,子类的析构函数也会自动调用父类的析构函数。要想一个类不能被继承,我们只要把它的构造函数和析构函数都定义为私有函数。那么当一个类试图从它那继承的时候,必然会由于试图调用构造函数、析构函数而导致编译错误。可是这个类的构造函数和析构函数都是私有函数了,我们怎样才能得到该类的实例呢?这难不倒我们,我们可以通过定义静态来创建和释
2014-05-29 19:02:23 638
原创 第三十五题 赋值操作符函数
题目:类CMyString的声明如下:class CMyString{public: CMyString(char* pData = NULL); CMyString(const CMyString& str); ~CMyString(void); CMyString& operator = (const CMyString& s
2014-05-29 18:47:03 628
原创 第三十三题 输出容器中3个不同的数
题目:用C++设计一个不能被继承的类首先想到的是在C++ 中,子类的构造函数会自动调用父类的构造函数。同样,子类的析构函数也会自动调用父类的析构函数。要想一个类不能被继承,我们只要把它的构造函数和析构函数都定义为私有函数。那么当一个类试图从它那继承的时候,必然会由于试图调用构造函数、析构函数而导致编译错误。
2014-05-24 16:33:59 711
原创 第三十一题 输出字符串字符的几种组合
题目:输入一个字符串,输出该字符串中字符的所有组合。举个例子,如果输入abc,它的组合有a、b、c、ab、ac、bc、abc。
2014-05-15 19:02:38 626
原创 第三十题 从1开始顺序输出n位的整数
题目:输入数字n,按顺序输出从1最大的n位10进制数。比如输入3,则输出1、2、3一直到最大的3位数即999//输出n位的数,用这种方法可以防止出现越界#include #include using namespace std;void printDecimal(int n){ if(n <= 0) return; string str = "1"; while(str.s
2014-05-13 11:26:07 846
原创 第二十九题 在字符串中删除指定字符
题目:输入两个字符串,从第一字符串中删除第二个字符串中所有的字符。例如,输入”abcd”和”aeiou”,则删除之后的第一个字符串变成”Thy r stdnts.”。
2014-05-12 11:24:21 838
原创 第二十七题 数组中只出现1次的2个数
题目:一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。要求时间复杂度是O(n),空间复杂度是O(1)
2014-05-08 10:33:40 566
原创 第二十五题 求取字符串的排练组合输出
题目:输入一个字符串,打印出该字符串中字符的所有排列。例如输入字符串abc,则输出由字符a、b、c所能排列出来的所有字符串abc、acb、bac、bca、cab和cba。
2014-05-07 13:46:55 614
原创 第二十四题 求取树的深度
//求取树的深度#include using namespace std;struct treenode{ treenode *m_left; treenode *m_right; int value;};//定义一个平衡二叉树void maketree(int value,treenode *&ptr){ if (ptr==nullptr) { treenode
2014-05-06 22:14:42 634
原创 第二十三题 求取和为n的连续的数
//求取和为定值的连续的数#include using namespace std;//输出beg和end之间的数void printcount(int beg,int end){ for (int i=beg;i<=end;++i) { cout<<i<<" "; } cout<<endl; return;}void FindContinuousSequence(in
2014-05-04 22:12:26 782
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人