image

编辑人: 未来可期

calendar2025-06-19

message7

visits255

百姓网PHP 面试经历(2015年2月)

笔试题(邮件)

1,百姓网需要在每个页面上显示查看的次数,对于这个问题,你的解决思路是什么,如何实现,用你熟悉

的语言code。

2,百姓网不允许同一个人在一天内发布重复或接近重复的信息,设计一个算法,检测重复信息。写出你的

解决思路,并code。

现场笔试

1,有用户反映不能访问我们的网站,你如何找出问题所在,写出你的步骤和思路。

2,有一个母羊,第2年和第4年可以生一头小母羊,在第5年死去,小母羊有可以在它出生的第2年和第4年生

小母羊,第5年死去,写一个程序计算第n年的母羊的数量,用熟悉的编程语言实现。

我的参考解答:

这里只给出大致的解体思路。

笔试题:

1,对于这个问题,只要设置一个计数器即可,在每次用户访问的时候,将计数器加1,当然初始的时候计数

器的值为0.

2,本问题可以演化为字符串的匹配问题,要比较两个字符串相同很容易,但要比较接近重复,就是说两个

字符串的大部分内容一样,只有一小部分不同,也要判断两个字符串相同。 我想到的方法是从一个字符串

中随机抽取10个字符子串,如果有8个或以上的子串能在另一个字符串中找到,则可以认为这两个字符串大

致相等。

现场笔试题

1,对于这个问题,没有明确的标准答案,目的就是考察应试者处理问题的方法。我的解答如下,用户不能

访问网站,主要有以下三个原因,用户自身机器问题,运营商问题,我们网站问题。因为用户访问网站,是

一个典型的c/s模型,这个模型由客户端,服务器和中间的网络(运营商)组成,其中的任何一个出现问题,

都会导致用户不能访问网站。接下来就是确定问题所在,可以做一些实验来测试每一个部分有没有坏,比如

用户如果可以访问其他网站,证明用户机器和网络本身没有问题,可能还是我们的服务器问题。排除一些可

能后,对剩余的可能进行验证,最终确定问题所在。

2.这是个典型的递归编程题,之前我接触过它的简化版本,就是母牛从第4年起每年生一头小母牛,并且母

牛不会死。简化版本用简单的递归就能实现,如下

int GetCow1(int n) //从第4年开始每年生一头小母牛。

{

if(n==1 || n==2 || n==3 )

return 1;

if(n>=4)

return GetCow1(n-1)+GetCow1(n-3);

}

而这个题目并不简单,我现场做到时候,想来半天,做错了。用了一个函数来递归,实际上要用多个函数递

归。我给出的解答如下:

母牛有4种,根据年龄分为1,2,3,4

设为n1,n2,n3,n4,n5

前一年的牛为 n1+n2+n3+n4

则后一年的牛为

n1′=n1+n3;

n2′=n1;

n3′=n2;

n4′=n3;

后一年的牛为 2*n1+n2+2*n3;

第1年 n1:1 n2:0 n3:0 n4:0 总数:1

第2年 n1:1 n2:1 n3:0 n4:0 总数:2

第3年 n1:1 n2:1 n3:1 n4:0 总数:3

第4年 n1:2 n2:1 n3:1 n4:1 总数:5

第5年 n1:3 n2:2 n3:1 n4:1 总数:7

第6年 n1:4 n2:3 n3:2 n4:1 总数 10

所以,可以根据这个公式,写出每一个年龄的母牛的递归函数。

int Get1Cow(int); //计算年龄为1的母牛的数量

int Get2Cow(int); //计算年龄为2的母牛的数量

int Get3Cow(int); //计算年龄为3的母牛的数量

int Get4Cow(int); // 计算年龄为4的母牛的数量

int Get1Cow(int n)

{

if(n<=1)

return 1;

else

return Get1Cow(n-1)+Get3Cow(n-1);

}

int Get2Cow(int n)

{

if(n==1)

return 0;

else

return Get1Cow(n-1);

}

int Get3Cow(int n)

{

if(n<=2)

return 0;

else

return Get2Cow(n-1);

}

int Get4Cow(int n)

{

if(n<=3)

return 0;

else

return Get3Cow(n-1);

}

int GetCow(int n) //母牛第2年和第4年生一头小牛,第5年死去。

{

return Get1Cow(n)+Get2Cow(n)+Get3Cow(n)+Get4Cow(n);

}

最后写一个主函数调用GetCow()即可。

笔试之后,是一个技术主管的面试。

先跟我聊了一下现场笔试的第一题,说说我的思路,我就把我的思路说了。但是他并没有提第2题,我就知

道我做错了,当时交的时候就感觉不对,还是自己的基本功不行,尽管回来的时候做出来了,但当时没想出

来就是个遗憾。

然后和我谈论一下对php的了解,我说我没有经验,但是由于有c++的基础,学php会很快(这是事实,可那

道编程题做错了),然后问了我关于网络了解多少,有多少使用网络的体会等。聊了大约五分钟,他说去见

其他人,看看他们有什么问题问我,我等了片刻,出来后告诉我回去等通知(这只是委婉的说法,真实的说

法是我不行,他们不考虑我,这么说只是为了给我个面子)。

这次应聘失败的总结:

1,笔试没发挥好,一道简单的递归编程居然做错,毕竟已经有快2个月没有在oj上做题了,没了感觉。

2,自己缺少php的相关开发经验,就算我编程题答对,他们录用我的机会也不大。不过我发现了我的软肋,

就是缺少实践经验,没有完整的做过一个项目。

对百姓网的印象:

1,公司位置不错,在徐汇交大内,交通方便。

2,公司貌似远超过了说宣称的20人,可能最近招的实习生过多吧,每个人的办公空间很小。

对有意应聘者的建议:

虽说我应聘失败了,全当一次面试经验了。

想要应聘成功至少要熟悉php,熟悉简单的编程技术。

喵呜刷题:让学习像火箭一样快速,快来微信扫码,体验免费刷题服务,开启你的学习加速器!

创作类型:
原创

本文链接:百姓网PHP 面试经历(2015年2月)

版权声明:本站点所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明文章出处。
分享文章
share