分享今天面試的三道題
公司名不說了。
一、類比撲克發牌,有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 <= $n;$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方式與伺服器的服務建立聯絡。