欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

分享今日面试的三道题

程序员文章站 2022-05-09 10:14:48
...
分享今天面试的三道题
公司名不说了。

一、模拟扑克发牌,有52张扑克牌,我们给它编号,从1,2,3...52。一共52张牌。请使用数组装载这些牌,然后再打乱顺序输出。比如:43,2,18,21...3。


二、公司要和QQ合作,提供接口给QQ,会发QQ号过来。请帮忙检测QQ好嘛的规则。如4323254,规则为:ABAB。5723723,规则为ABCABC。


三、假如我们现在要记录下网站中每一个flash小游戏被玩过多少次,每个游戏在一个单独的页面。
(a)请问在玩这些游戏的时候如何记录数据?
(b)如果计算出每个游戏被玩过多少次?(如果使用数据库的话,请写出SQL)


第二题我没答出来。请教下如何实现那个需求。

题量还不错,就三道,不过这些题考的貌似没啥针对性,比那些一写就要写2小时的好多了。
------解决方案--------------------
第二题思路:
对于每个qq,判断qq的前缀和后缀。树的长度从0 - strlen/2
如4323254
索引0开始的:
1位前缀:4,后缀3 不等
2位前缀:43 后缀23 不等
3位前缀的:432后缀325 不等
。。。

索引1开始的:
2前缀32 后缀32相等

计算长度最大的即可
$qqNs = array("4323254","22222","5123123","23412341234","2222222");
$str = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";

foreach($qqNs as $tmp){
$max = 1;
$qq = $tmp;
while($qq){
for($i=1,$n = floor((strlen($qq)/2));$i $preTree = substr($qq, 0, $i);
$postTree = substr($qq,$i,$i);
if($preTree == $postTree){
if($i>=$max){
$max = $i;
}
}
}
$qq = substr($qq,1);
}
echo $tmp.": ".substr($str,0,$max)."
";

结果:
4323254: AB
22222: AB
5123123: ABC
23412341234: ABCD
2222222: ABC


------解决方案--------------------
不至于吧?全是基础题,不要自己为难自己
一、
$ar = range(1, 54);
shuffle($ar);
print_r($ar);


二、用正则(既然第一题是基础,那么第二题也不会有过高的要求)
$qq = array('4323254', '5723723');
$p = array('/.*(\d\d)\\1.*/', '/.*(\d\d\d)\\1.*/');
$r = array('ABAB $0', 'ABCABC $0');
$t = preg_replace($p, $r, $qq);
print_r($t);
Array
(
[0] => ABAB 4323254
[1] => ABCABC 5723723
)

------解决方案--------------------
引用:
公司名不说了。

一、模拟扑克发牌,有52张扑克牌,我们给它编号,从1,2,3...52。一共52张牌。请使用数组装载这些牌,然后再打乱顺序输出。比如:43,2,18,21...3。


二、公司要和QQ合作,提供接口给QQ,会发QQ号过来。请帮忙检测QQ好嘛的规则。如4323254,规则为:ABAB。5723723,规则为ABCABC。


三、假如我们现在要记录下网站中每一个flash小游戏被玩过多少次,每个游戏在一个单独的页面。
(a)请问在玩这些游戏的时候如何记录数据?
(b)如果计算出每个游戏被玩过多少次?(如果使用数据库的话,请写出SQL)


第二题我没答出来。请教下如何实现那个需求。

题量还不错,就三道,不过这些题考的貌似没啥针对性,比那些一写就要写2小时的好多了。



第二题是什么意思 AB ABC?怎么我看不懂 分享今日面试的三道题
------解决方案--------------------
第三题flash和php通信,要在flash那边传参数过来才行。
------解决方案--------------------
第二题是指数字中有连续重复循环的现象,就像循环小数那种:4323254和5723723
同理随便几个例子:8742342398,74914891489134
------解决方案--------------------
引用:
什么是“只能固定的号码里弄”?

Quote: 引用:

这样的只能固定的号码里弄,如果不固定的,那就没法了

打个比方,用你的那个正则的形式如果再来一个222222的号码,那就不正确了,不可能说来一个号码加一个规则的
------解决方案--------------------
第三题,可以在游戏开始时,去请求一个php页面,将消息发送至php页面,php页面再去记录玩家玩的信息,如果比如ID,昵称,时间等。也可以直接在flash端使用 socket方式与服务器的服务建立联系。
分享今日面试的三道题

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。

相关文章

相关视频