一、OSI模型有几层?
二、说说C++的多态?为什么使用虚函数比非虚函数耗费的时间更多?
三、有一个全局变量int a=0,现在两个线程各自循环执行100次a++操作,问最后a的值是多少?
四、对于海量数据,用什么数据结构存储用户搜索的高频关键词比较合适?比如,当用户输入“黄”字,输入框要自动显 示“黄晓明”,“黄蓉”,“黄山”,“黄鹤楼”等提示,但是能存储的量很有限,所以需要选择恰当的数据结构。(我先后说 了数组和堆,似乎都被否决了)
五、智力题:一片草地的草每天匀速地长,m只羊花p天能吃完,n只羊花q天能吃完,问现在k只羊花多少天能吃完?( 记不清m,p,n,q,k的具体数值了,总之是根据已有的两个条件列出二元一次方程组来求解)
六、手写快速排序程序。快排的复杂度是多少?给定1组数1,4,5,5,8,9,7,在快排过程中这两个5是否会被交换?
七、简述怎样用两个栈实现一个队列的功能?只需实现入队、出队。
八、你想打开电视看世界杯,结果发现电视黑屏完全没反应,应该怎么检测故障?
九、写一个函数判断一个字符串里的小括号、大括号是否匹配。例如,输入为”(){}”时输出为true,输入为“{(aa)}”时输出为true,输入为“({)}”时输出为false。
(我用一个栈来存储,对字符串从左往右扫描,遇到左括号就压进栈里,遇到右括号就判断是否跟栈顶元素匹配,如果不匹配就让整个函数直接返回false,如果匹配就取出栈顶元素。注意右括号始终不会进栈。扫描完后如果栈不为空就说明还有多余的左括号,返回false;否则返回true。)
十、如果AB*C=DE,DE+FG=HI,其中从A到I这9个字母代表9个不同的数字,求这9个数字分别是多少。
A
2
多态不说。 虚成员函数的位置和非虚成员函数的在在内存存放的位置不一样,虚函数在虚表,虚表多的话,寻找一个虚函数就需要遍历所有虚表,但是成员函数可以直接通过偏移而得到。
3
这是个 线程锁 的问题。答 200 你就坑了。
4
关键词 倒排索引
7
队列:先进先出 栈:后进先出
准备2个栈Sa,Sb, 数据 12345 下面来模拟队列的 12345顺序入队,12345顺序出队 效果: 12345-> Sa压栈: 12345 Sa出栈-> 54321 54321-> Sb压栈: 54321 Sb出栈-> 12345
8
看毛世界杯,今年欧洲杯
9
10
第一反应 排列组合 然后就是python了
#! usr/bin/env python
# coding: utf-8
import itertools
arr = list(itertools.permutations(range(1, 10), 7))
“””
nine numbers: 1,2,3,4,5,6,7,8,9
calc AB*C=DE,DE+FG=HI
“””
def func(nums):
a, b, c, h, i, f, g = nums
if (a * 10 + b) * c == (h * 10 + i) – (f * 10 + g):
de = (a * 10 + b) * c
d, e = int(str(de)[0]), int(str(de)[1])
if all([x not in nums for x in [d, e]]):
print(“%s%s*%s=%s%s,%s%s+%s%s=%s%s” %
(a, b, c, d, e, d, e, f, g, h, i))
return True
for item in arr:
if func(item):
break