`
contra
  • 浏览: 3357 次
  • 性别: Icon_minigender_1
  • 来自: 上海
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

传说中的腾讯面试题

阅读更多
说在前面:
1、以下题目,除了编程任务外其他都需要写在给你提供的草纸上。纸张是珍贵的地球资源,请节约使用。编程任务在有相应的环境时,会要求上机书写,实在没有条件,就只能写在草纸上了。
2、时间:
基础任务+进阶任务+设计任务 = 90分钟
编程任务 = 60分钟

基础任务:
1、请列举你能想到的UNIX信号,并说明信号用途。
Unix信号量在我们的使用中也经常用到,今天,我们就来学习下Unix信号量的知识。信号是一种软中断,是一种处理异步事件的方法。一般来说,操作系统都支持许多信号。尤其是UNIX,比较重要应用程序一般都会处理信号。

UNIX定义了许多信号,比如SIGINT表示中断字符信号,也就是Ctrl+C的信号,SIGBUS表示硬件故障的信号;SIGCHLD表示子进程状态改变信号;SIGKILL表示终止程序运行的信号,等等。信号量编程是UNIX下非常重要的一种技术。

Unix信号量也可以在文件/usr/include/sys/signal.h中查看
#define SIGHUP  进程由於控制终端死去或者控制终端发出起命令
#define SIGINT  键盘中断所产生的信号
#define SIGQUIT  键盘终止
#define SIGILL  非法的指令
#define SIGTRAP   进程遇到一个追踪(trace)或者是一个中断嵌套
#define SIGABRT  由abort系统调用所产生的中断信号
#define SIGIOT  类似於SIGABRT
#define SIGBUS   进程试图使用不合理的记忆体
#define SIGFPE  浮点异常
#define SIGKILL  KILL
#define SIGUSR1  用户自定义
#define SIGSEGV  段错误
#define SIGUSR2  用户自定义
#define SIGPIPE  管道操作时没有读只写
#define SIGALRM 由alarm系统调用产生的timer时钟信号
#define SIGTERM 收到终端信号的进程
#define SIGSTKFLT 堆叠错误
#define SIGCHLD  子进程向父进程发出的子进程已经stop或者终止的信号
#define SIGCONT  继续运行的信号
#define SIGSTOP  stop
#define SIGTSTP  键盘所产生的stop信号
#define SIGTTIN   当运行在後状态时却需要读取stdin的资料
#define SIGTTOU   当运行在後状态时却需要写向stdout
#define SIGURG   socket的紧急情况
#define SIGXCPU  进程超额使用CPU分配的时间
#define SIGXFSZ  进程使用了超出系统规定文件长度的文件
#define SIGVTALRM  内部的alarm时钟过期
#define SIGPROF  在一个程式段中描绘时钟集过期
#define SIGWINCH 终端视窗的改变
#define SIGIO 非同步IO
#define SIGPOLL  SIGIO pollable事件发生

通过结合trap命令使用:trap <command-list>  <signal-list>

以上这些Unix信号量的知识,希望大家能够记住,方便以后我们的使用。


2、请列举、你能想到的所有的字符串查找算法,并加注释简单说明。
3、有一个IP地址(192.168.0.1),请写出其32位无符号整数形式。
0001 0010 0001 1000 0000 0000 0000 0001
4、写出、你能想到的所有HTTP返回状态值,并说明用途(比如:返回404表示找不到页面)
"100" : Continue
"101" : witching Protocols
"200" : OK
"201" : Created
"202" : Accepted
"203" : Non-Authoritative Information
"204" : No Content
"205" : Reset Content
"206" : Partial Content
"300" : Multiple Choices
"301" : Moved Permanently
"302" : Found
"303" : See Other
"304" : Not Modified
"305" : Use Proxy
"307" : Temporary Redirect
HTTP 400 - 请求无效
HTTP 401.1 - 未授权:登录失败
HTTP 401.2 - 未授权:服务器配置问题导致登录失败
HTTP 401.3 - ACL 禁止访问资源
HTTP 401.4 - 未授权:授权被筛选器拒绝
HTTP 401.5 - 未授权:ISAPI 或 CGI 授权失败
HTTP 403 - 禁止访问
HTTP 403 - 对 Internet 服务管理器 (HTML) 的访问仅限于 Localhost
HTTP 403.1 禁止访问:禁止可执行访问
HTTP 403.2 - 禁止访问:禁止读访问
HTTP 403.3 - 禁止访问:禁止写访问
HTTP 403.4 - 禁止访问:要求 SSL
HTTP 403.5 - 禁止访问:要求 SSL 128
HTTP 403.6 - 禁止访问:IP 地址被拒绝
HTTP 403.7 - 禁止访问:要求客户证书
HTTP 403.8 - 禁止访问:禁止站点访问
HTTP 403.9 - 禁止访问:连接的用户过多
HTTP 403.10 - 禁止访问:配置无效
HTTP 403.11 - 禁止访问:密码更改
HTTP 403.12 - 禁止访问:映射器拒绝访问
HTTP 403.13 - 禁止访问:客户证书已被吊销
HTTP 403.15 - 禁止访问:客户访问许可过多
HTTP 403.16 - 禁止访问:客户证书不可信或者无效
HTTP 403.17 - 禁止访问:客户证书已经到期或者尚未生效
HTTP 404.1 - 无法找到 Web 站点
HTTP 404 - 无法找到文件
HTTP 405 - 资源被禁止
HTTP 406 - 无法接受
HTTP 407 - 要求代理身份验证
HTTP 410 - 永远不可用
HTTP 412 - 先决条件失败
HTTP 414 - 请求 - URI 太长
HTTP 500 - 内部服务器错误
HTTP 500.100 - 内部服务器错误 - ASP 错误
HTTP 500-11 服务器关闭
HTTP 500-12 应用程序重新启动
HTTP 500-13 - 服务器太忙
HTTP 500-14 - 应用程序无效
HTTP 500-15 - 不允许请求 global.asa
Error 501 - 未实现
HTTP 502 - 网关错误


基础任务-选作(会得到额外分数):
1、画几个你最熟悉的SERVER端模型出来(格式不重要,尽量将图画清楚,说明思路即可)

进阶任务:
1、PHP的垃圾收集机制是怎样的?
  说明:
  1)如果,你熟悉PHP源码,那么请从源码入手,回答些问题,会获得额外加分
  2)如果,你不熟悉PHP源码,那么尽你所能,多写点东西,包括利用自己的编程直觉得到的信息,都可以。
  3)对,则有分,错误不扣,不写无分。
2、请写出HTTP头,并符合以下要求:
  1)这是一个post请求
  2)目标:http://www.example.com:8080/test
  3)POST变量:
    username: test
    pwd: test2
    intro: Hello world!
  4)包含以下COOKIE信息:
    cur_query: you&me
  说明:
  1)如果,你记不得某个HTTP协议中的指令字了,那么,无奈这举是用“汉字”代替。
  2)如果,你能记住更多的HTTP协议指令字,那么多写几句,总是没坏处,对吧?
  3)最关键的,只需要画出正确的“轮廓”(还记得httpwatch等工具打印出来的头部吗?那就是“轮廓”的含义),也会有分数,但如果,连“轮廓”都写错了,那么就很遗憾了。

设计任务:
1、最近总有人骚扰我们的投票模块,需要你来设计一个投票限制的东东
  要求如下:
  1)要求每个QQ号码(假设此QQ号码在UNIT32内可以表示)10分钟这内只能投5票。
  2)我们的用户很踊跃,平均每天要有2000万人左右通过此程序投票。
  说明:
  1)无需写代码,只需要图跟文字即可。
  2)对于关键逻辑,请用图加代码表示出来,这也是对你文字表达能力的一个考验。
  3)对你能想到的所有的边界条件列出来,这是对你逻辑思维全面与敏捷性的考验。
  4)存储部分,尽你所能吧。如果,你需要一个自己设计的存储层,那么把这个存储层的实现,用文字+图片方式描述清楚,要是设计合理,你会获得华丽的奖分。
核心问题:如何统计10分钟之内投了5票?

首先:以分钟为键切分数据集,
然后:每个数据集内,以qq号码为键,vote次数为值
OK,已经成功转换为key-value方式存储,2000万的日投票,除以86400秒,并发231.48rps,使用memcache能够轻松胜任。

数据集ID:201006072134
【QQ号码:Vote次数】

201006072134 | 201006072135 | 201006072136
【12345:3】  | 【12345:3】  | 【12345:3】
【88888:2】  | 【88888:3】  | 【88888:3】
数据模型:
$data[ 201006072134时间分钟 ][ qq号码 ] = vote次数;

A.统计10分钟内投了多少票
$votes = 0;
for($i = 0; $i < 10; $i++ ){
$votes += $data[ $minute-$i ][ $qq ];
}

B.桶内投票数+1
$data[ $minute ][ $qq ]++;

C.过期统计数据,垃圾清理
unset($data[ $minute ]);
本答案转自http://www.hemono.com/?p=205



编程任务:
1、我们碰到了大麻烦,一个新来的传教士惹恼了上帝,上帝很愤怒,要求我们把圣经(bbe.txt)背熟,直至他说哪个单词,我们就要飞快的回答出这个单词在第几行第几个单词位置。听说你是个优秀的程序员,那么髟助我们完成这个不可能的任务吧。
  要求如下:
  1)/myworks/example/bbe.txt,98版本英文圣经一本
  2)输入部分要求如下:php ./example.php [单词]
  3)输出部分如下:[单词] 1,2 2,4 5,6 表示:此单词在1行2列(第二个单词),2行4列...
  说明:
  1)此文本4MB之巨...
  2)单词的含义:由英文字母(大小写),数字(0-9)组成的串
  3)提供给你的机器OS为ubuntu 9.10,内存只有1G,而且,很不幸的,其中700M用来做了别的
  4)上机考试不允许上网,但我装了man文档以及读取CHM以及PDF的阅读器,在电脑的桌面的CHM文件夹中,有相应的PHP参考手册
  5)算法复杂度要求不能大于O(N^2)(就是N的平方)
  6)什么?PHP低效且用起来不顺手,好的,你可以用别的语言来实现。但注意:提供给你的机器上只有python 2.4/perl 5.8/gcc[g++] 4.1
#!/usr/bin/php
<?php
 $handle = fopen('bbe.txt','r');
 $word = $argv[1];
 $x = array();
 $y = array();
 $i = 1;
 while(!feof($handle)){
        $data = fgets($handle);
        if(preg_match_all('/(?<![a-z])'.$word.'(?![a-z])/i',$data,$matches)){
                if(count($matches[0])==1){
                        $x[] = $i;
                        $y[] = stripos($data,$word);
                }else{
                        $countInLine = count($matches[0]);
                        $start = 0;
                        for($j=0;$j<$countInLine;$j++){
                                $x[] = $i;
                                $start = $y[] = stripos($data,$word,$start);
                                $start++;
                        }
                }
        }
        $i++;
 }
 fclose($handle);
 $xy = array();
 for($k = 0;$k < count($x);$k++){
        $xy[] = $x[$k].','.$y[$k];
 }
 echo '<pre>';
 print_r($xy);


输出我没有按照要求输出,我也不知道这个效率高不高,反正能查出来单词的坐标.为了做这个题,我特意下了本txt的<<圣经>>,一看,靠,真是4M
分享到:
评论

相关推荐

    牛客校招面试题(附答案与解析)前端.rar

    注:本篇参考回答为优秀学长学姐所写(传说中的offer收割机们),不过也可能部分地方有疏漏,如果觉得有问题的,欢迎纠错,一经采纳,还有奖励哦,纠错请加qq:1663959531 学完这个题库,把此题库都理解透彻应对...

    唐骏亲自出的微软面试题

    以下是三道传说中能让微软开出诱人条件的题目: 1. 手机电池寿命减半问题:此题考察的是沟通技巧和危机处理能力。解决方案的目的是既要维护客户满意度,又要控制成本。理想的信件应该礼貌地解释问题,提供两个选项...

    牛客校招面试题(附答案与解析)c++篇.rar

    注:本篇参考回答为优秀学长学姐所写(传说中的offer收割机们),不过也可能部分地方有疏漏,如果觉得有问题的,欢迎纠错,一经采纳,还有奖励哦,纠错请加qq:1663959531 学完这个题库,把此题库都理解透彻应对...

    CISSP 传说中的373题库

    ### CISSP 传说中的373题库 #### 知识点解析: **1. 数据保护技术:数据令牌化** 题目询问了哪种方法通过完全替换数据元素来保护个人可识别信息(PII)。答案是 **D. 数据令牌化**。 - **透明数据库加密 (TDE)**...

    收藏的精品资料江苏省幼儿园教师资格证面试试题.docx

    - **解析:** “子期知音”是中国古代著名的音乐传说之一,伯牙所演奏的琴曲正是《高山流水》,表达了音乐与心灵相通的深刻含义,故正确答案为B。 **8. 幼儿睡眠时间需求** - **题目:** 保证幼儿每天睡眠()小时。A...

    Java面试宝典(传说中的葵花宝典).doc

    Java面试题汇总

    华为面试题精选经过实践验证的

    【华为面试题精选经过实践验证的】 在华为的面试过程中,企业通常会考察候选人的技术能力、问题解决技巧以及团队协作精神。这份“传说中的华为面试考题.doc”文档很可能包含了华为公司对IT专业人士的常见面试问题,...

    牛客校招面试题测试(附答案与解析)java篇.rar

    注:本篇参考回答为优秀学长学姐所写(传说中的offer收割机们),不过也可能部分地方有疏漏,如果觉得有问题的,欢迎纠错,一经采纳,还有奖励哦,纠错请加qq:1663959531 学完这个题库,把此题库都理解透彻应对...

    传说中的乌云内部工具

    传说中的乌云内部工具,刷洞必备!

    vue常用面试题20道,2023面试必背!!

    vue常用面试题20道 金三银四就在眼前,广大前端web面试用得到

    TTUPyQ:传说中的考古题系统

    TTU PyQ Past year Question collect systemIntroduce传说中的考古题系统Dependence Instalatoin go get github.com/TTUCourse/TTUPyQ

    传说中的WCF(12)示例源代码

    在《传说中的WCF》系列的第12节中,作者通过一个具体的例子展示了如何实现服务器端回调。这个例子中,服务器会使用一个**计时器(Timer)**,每隔3秒钟生成一个随机数,并通过回调机制将这个随机数发送回客户端。...

    传说中的100句英语可以帮你背7000单词

    传说中的100句英语,实际上是一种高效的单词记忆策略。这些句子涵盖了丰富的词汇和语境,通过理解并记忆这些句子,学习者可以同时学习到多个单词以及它们在实际语境中的应用。例如,第一句中的"grassland dwellers...

    试论历史文献中的黄帝和传说中的黄帝.zip

    黄帝,作为华夏民族的共同祖先,其在历史文献与传说中的形象历来是学者研究的重要课题。《试论历史文献中的黄帝和传说中的黄帝》一文,通过深入剖析文献记录与民间传说,旨在解读黄帝这一历史与神话交织的形象,及其...

    传说中的100句背7000单词

    标题“传说中的100句背7000单词”所指的是一种英语学习方法,其核心理念是通过精读并反复背诵100个精选的英文句子,来掌握大约7000个英语词汇。这种方法强调的是深度学习和词汇的广泛覆盖,旨在帮助学习者高效地扩大...

    性能测试面试题精选(含答案)

    10. **敏捷项目中的性能测试**:每个迭代都要明确性能目标,采用自动化测试,并使用测试驱动方法确保性能优化。 11. **Web系统响应时间**:2秒、5秒和10秒分别代表了优秀、良好和较差的用户体验。 12. **RBI方法...

    传说中的十万IP程序

    【标题】"传说中的十万IP程序"所暗示的是一个能够处理或吸引大量网络流量的程序。在互联网行业中,"IP"通常指的是独立访问者(Internet Protocol),代表网站的独立访客数量。一个程序如果被称为“十万IP”,那么它...

    Android应用源码之传说中的3D播放器-IT计算机-毕业设计.zip

    本项目"Android应用源码之传说中的3D播放器"是一个专注于Android平台上的多媒体播放器开发的毕业设计案例,旨在帮助学习者了解并掌握3D视频播放的实现细节。 首先,我们要了解3D播放器的核心技术。在Android上实现...

Global site tag (gtag.js) - Google Analytics