锁定老帖子 主题:腾讯php程序员面试题目,供大家学习一下
精华帖 (0) :: 良好帖 (3) :: 新手帖 (0) :: 隐藏帖 (6)
|
|
---|---|
作者 | 正文 |
发表时间:2010-06-19
百度惯了,基础不牢靠不行
|
|
返回顶楼 | |
发表时间:2010-10-27
swanky_yao 写道 最近很有去腾讯的冲动,看了这篇文章,冲动,没了!
呵呵 |
|
返回顶楼 | |
发表时间:2010-10-28
3)提供给你的机器OS为ubuntu 9.10,内存只有1G,而且,很不幸的,其中700M用来做了别的
不知道这句话对编程有什么影响? |
|
返回顶楼 | |
发表时间:2010-10-28
meigm 写道 编程任务主要用到preg_match_all和strpos吧,写了个粗糙的:
<?php if (count($argv) != 2) { echo "Usage: php ./bbe.php keyword\n"; die; } $keyword = $argv[1]; $file = "/myworks/example/bbe.txt"; $line_num = 0; $colum_num = 0; echo $keyword . " "; $fp = @fopen($file, "r"); while (!feof($fp)) { $line_num++; $line_val = fgets($fp, 1024); if (preg_match_all("/$keyword/", $line_val, $matches)) { $offset = 0; for ($i=0; $i<count($matches[0]); $i++) { $colum_num = strpos($line_val, $matches[0][$i], $offset); echo $line_num . "," . $colum_num." "; $offset = $colum_num + strlen($keyword); } } } @fclose($fp); echo "\n"; ?> 我第一眼看到这题也是这么想的,可再一想,这样可能有问题,用了正则表达式,算法的复杂度肯定达不到要求,PHP搞多了,平时都用习惯了,想也不想。 我认为这道题应该是这样,首先不是使用fgets取整行字符串,应该用fgetc一个一个取。然后根据取出的值做判断,如:如果是[a-zA-Z0-9]的字符,则做A操作,如果取出的不是在这个范围,则做B操作,如果是\n(换行符)则linenum+=1等等,类似一个状态机的操作吧,这里就不详细解释了,今天就不写代码了,哪天有空我贴下。 |
|
返回顶楼 | |
发表时间:2010-11-05
超大文件也可以弄,无非你设定个预先读取的量,分批处理 4m分成 1m * 4 4G分成400份
或是建立一个中间索引文件,然后用四个进程同时跑,原题好像没有时间限制...跑去呗...要是嫌效率低,再实现的基础上改遍历算法.. |
|
返回顶楼 | |
发表时间:2010-11-09
0分飘过 字数不够?
|
|
返回顶楼 | |
发表时间:2010-12-17
php底层还是要知道啊,努力学习
|
|
返回顶楼 | |
发表时间:2010-12-23
纯的后端程序员啊
|
|
返回顶楼 | |
发表时间:2011-01-09
搞了两年PHP开发,还是被这些题给问住了。。。
|
|
返回顶楼 | |
发表时间:2011-03-11
renzhen 写道 3)提供给你的机器OS为ubuntu 9.10,内存只有1G,而且,很不幸的,其中700M用来做了别的
不知道这句话对编程有什么影响? 提供你的信息: 1. 编程环境(LINUX) 2. 可用内存(不大于300M) |
|
返回顶楼 | |