- 博客(16)
- 收藏
- 关注
原创 【程序员面试金典】猫狗收容所
一.题目描述 有家动物收容所只收留猫和狗,但有特殊的收养规则,收养人有两种收养方式,第一种为直接收养所有动物中最早进入收容所的,第二种为选择收养的动物类型(猫或狗),并收养该种动物中最早进入收容所的。 给定一个操作类似二维数组的结构,若第一个元素为1,则代表有动物进入收容所,第二个元素为动物的编号,正数代表狗,负数代表猫;若第一个元素为2,则代表有人收养动物,第二个元素若为0,则采取第一种收养方
2017-06-09 17:15:12 889
原创 【程序员面试金典】确定两串乱序同构
一.题目描述 给定两个字符串,请编写程序,确定其中一个字符串的字符重新排列后,能否变成另一个字符串。这里规定大小写为不同字符,且考虑字符串重点空格。给定一个string stringA和一个string stringB,请返回一个bool,代表两串是否重新排列后可相同。保证两串的长度都小于等于5000。 测试样例: 1).true 2).false 二.题目分析1).先判断两个字符串的
2017-06-08 16:30:47 880
原创 谈谈进程间通信的几种方式?
一.为什么进程间需要通信? 1).数据传输 一个进程需要将它的数据发送给另一个进程; 2).资源共享 多个进程之间共享同样的资源; 3).通知事件 一个进程需要向另一个或一组进程发送消息,通知它们发生了某种事件; 4).进程控制 有些进程希望完全控制另一个进程的执行(如Debug进程),该控制进程希望能够拦截另一个进程的所有操作,并能够及时知道它的状态改变。 基于以上几个原因,所以
2017-06-06 20:52:25 8797 3
原创 如何定义一个只能在栈或者堆上生成的类
如何定义一个只能在栈上或者堆上生成的类呢? 这主要考察的是对C++语法和内存管理的掌握,在C++中的内存是如何管理的呢?下面是我自己理解的一张内存管理的图: 一.定义一个只能在堆上生成的类 分析:我们都知道一个对象是既可以在栈上生成也可以在堆上new出来,要想生成一个只能在堆上生成的类,也就是说,局部对象,静态对象,全局对象都不能生成,那么我们可以将构造函数写成私有或者保护(类外不可以直接访问
2017-06-06 10:48:30 1441
原创 C++中如何定义不能被继承的类
学习过Java和c#的童鞋应该都知道,在Java中定义了关键字final表示一个类不能被继承,在C#中也有相同意义的关键字sealed表示一个类不能被继承,那仫在C++中呢?是没有这样特殊的关键字了,只能自己实现了。 如何在C++中定义一个不能被继承的类呢? 想法一:私有构造函数来解决 我们都知道在C++中子类的构造函数会自动调用父类的构造函数,子类的析构函数也会自动调用父类的析构函数。如果想
2017-06-05 22:47:09 2916 2
原创 模拟计算器的简单实现
一.为什仫要实现大数运算? 我们知道在数学领域中,数值的大小是没有上限的,但是计算机中,由于字长的限制,计算机所能表示的范围是有限的,当我们在实际的应用中进行大量的数据处理的时候,会发现参与运算的数往往超过计算机的基本数据类型的表示范围。假设一个数据的类型是long long那仫它最多可表示的数据是8个字节,一但超出这个范围,就无法用编程语言的内置类型存储,因此就产生了大数运算这种方法。 二.大
2017-06-05 18:20:51 3360
原创 Linux中关于信号的一些知识
一.什仫是信号? 信号其实是一种软件中断,它为程序提供了一种处理异步时间的方法,而所谓的异步时间就是时间可能会在任何时间内发生,很多重要的程序都需要对信号进行处理。可以使用kill -l查看系统中所有的信号列表以及他们的信号编号。 我们把编号为1~31的信号叫做普通信号,把34~64的信号称作实时信号。所有的信号都包含在头文件signal.h中,且都被定义为正整数常量,也
2017-06-04 10:46:29 1004
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人