解决方案 »

  1.   

    第二题思路:
    对于每个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)."<br/>";
    结果:4323254: AB
    22222: AB
    5123123: ABC
    23412341234: ABCD
    2222222: ABC
      

  2.   

    第二题
    如果不是考算法,也可以简单的用正则反向引用:$qqNs = array("4323254","22222","5123123","23412341234","2222222");
    $preg = "/(\d+)(\\1)/";
    foreach($qqNs as $qq){
    if(preg_match($preg,$qq,$res)){
    echo $qq.":".substr($str,0,strlen($res[1]))."<br/>";
    }
    }
      

  3.   

    不至于吧?全是基础题,不要自己为难自己
    一、$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
    )
      

  4.   

    第二题是什么意思   AB ABC?怎么我看不懂 
      

  5.   

    第三题flash和php通信,要在flash那边传参数过来才行。
      

  6.   

    $qq = array('4323254', '5723723', '222222');
    $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
        [2] => ABCABC ABAB 222222
    )
    有什么不对吗?
      

  7.   

    当然不对了
    222222这个是属于AAAAAA的,怎么算是那2个格式?
      

  8.   

    222222 既符合 ABCABC 的规则,又符合 ABAB 的规则打个比方,用你的那个正则的形式如果再来一个222222的号码,那就不正确了,不可能说来一个号码加一个规则的
      

  9.   

    打个比方,用你的那个正则的形式如果再来一个222222的号码,那就不正确了,不可能说来一个号码加一个规则的还有如果只是22222呢?那你说他是ABAB形式?
    那我只能说汗颜,无话可说
      

  10.   

    不错,但题目并没有给出相邻数相同的识别规则,当然就不需要单列了考虑到一般的需求,所以我才有 #8 的代码当然不对了
    222222这个是属于AAAAAA的,怎么算是那2个格式?
      

  11.   

    题目是:
    二、公司要和QQ合作,提供接口给QQ,会发QQ号过来。请帮忙检测QQ好嘛的规则。如4323254,规则为:ABAB。5723723,规则为ABCABC。一般不应在题目之外附加条件吧?
      

  12.   


    那是你不理解题目而已人家题目都说是任意的号码,后面2个后面只是打一个比方而已,并不是只是2个号码呵呵,那我无话可说,人家这题都声明了根据号码来找出号码的规则,并不固定,你却说那是自己臆测,自己加条件,当我啥都不懂,啥都没说吧那你的意思就是说,先列出所有的进可能的规则,然后用号码去里面匹配就完了呗
    呵呵提供接口给QQ,会发QQ号过来。请帮忙检测QQ好嘛的规则这句话应该很清楚,“请检测QQ好嘛的规则”
    难道说规则已知?
    那我确实愚昧了
      

  13.   

    既然是“检测规则”,自然是规则已存在了
    那是你不理解题目而已人家题目都说是任意的号码,后面2个后面只是打一个比方而已,并不是只是2个号码呵呵,那我无话可说,人家这题都声明了根据号码来找出号码的规则,并不固定,你却说那是自己臆测,自己加条件,当我啥都不懂,啥都没说吧那你的意思就是说,先列出所有的进可能的规则,然后用号码去里面匹配就完了呗
    呵呵提供接口给QQ,会发QQ号过来。请帮忙检测QQ好嘛的规则这句话应该很清楚,“请检测QQ好嘛的规则”
    难道说规则已知?
    那我确实愚昧了
      

  14.   

    第三题,可以在游戏开始时,去请求一个php页面,将消息发送至php页面,php页面再去记录玩家玩的信息,如果比如ID,昵称,时间等。也可以直接在flash端使用 socket方式与服务器的服务建立联系。
      

  15.   

    我记得flash中好像可以调用php页面中的js的,所以访问动态页面地址也是可以的吧。我之前做过flash与aspx页面的交互,做flash抽奖模块时。
      

  16.   

    动态页面端如果执行成功就write("success=1"),这时flash中一可以收到success的值,也可以不用在动态页面端输出这些字符串(若flash端不需要知道执行结果的情况)
      

  17.   


    那是你不理解题目而已人家题目都说是任意的号码,后面2个后面只是打一个比方而已,并不是只是2个号码呵呵,那我无话可说,人家这题都声明了根据号码来找出号码的规则,并不固定,你却说那是自己臆测,自己加条件,当我啥都不懂,啥都没说吧那你的意思就是说,先列出所有的进可能的规则,然后用号码去里面匹配就完了呗
    呵呵提供接口给QQ,会发QQ号过来。请帮忙检测QQ好嘛的规则这句话应该很清楚,“请检测QQ好嘛的规则”
    难道说规则已知?
    那我确实愚昧了
    跟你讨论没意义,如果是已知规则,人家就不需要叫你去检测,而是叫你写程序来匹配并且告诉你规则了
    没必要跟你讨论这个下去,你喜欢钻文字牛角尖你就去钻吧这道题纯粹就是考简单的算法而已,写一个简单的算法能检测任意一个号码的规则这三道题第一题主要考的是数组的运用
    第二题考的是算法
    第三题考的是flash与php的通信
      

  18.   


    你好问一下里面的while($qq)怎么不是死循环啊
      

  19.   


    你好问一下里面的while($qq)怎么不是死循环啊...每次循环完,$qq的位数都减一位,怎么会死循环啊?$qq = substr($qq,1);
      

  20.   

    他不是有 $qq = substr($qq,1); 吗?
    每次去掉第一个字符,直到为空
      

  21.   


    你好问一下里面的while($qq)怎么不是死循环啊
    怎么会是死循环呢?
    while的用法你了解么?
    不过他这个算法写的有点啰嗦而已
      

  22.   


    你好问一下里面的while($qq)怎么不是死循环啊
    怎么会是死循环呢?
    while的用法你了解么?
    不过他这个算法写的有点啰嗦而已呵呵,多谢
      

  23.   

    #3是一个高并发计数器+nosql的应用场景,how about nodejs+redis?
      

  24.   

    这种情况确实是忘记考虑了,#1的也忽略了2222这种应该是AAAA的规则。
      

  25.   

    flash如何与php通信呢?
    第三道题没有人讨论吗?
      

  26.   

    1.利用页面刷新,存在session
    2.借助xml通信
      

  27.   

    第二题反了吧,应该是QQ提供公共API,然外面的人调用。不然来一个公司就要响应一个接口,腾讯的人不累死,也不符合软件是设计思想
      

  28.   

    第二题,综合前面各位大大,简单写下,欢迎给意见
    function gz($qq){
        $len = strlen($qq);
        $str = "ABCDEFG";
        $ret = '无规则';
        $first = substr($qq,0,1);
        if($len==substr_count($qq,$first)) return 'AA';
        for($i=0;$i<intval($len/2);$i++){
            for($j=1;$j<intval($len/2)+1;$j++){
                $a = substr($qq,$i,$j);
                $b = substr($qq,$i+$j,$j);
                if($a==$b){
                    $ret = substr($str,0,$j).substr($str,0,$j);
                }
            }
        }
        return $ret;
    }
    echo gz('888888').'<br>';
    echo gz('6521218').'<br>';
    echo gz('8712312369').'<br>';
    echo gz('881881');运行结果:AA
    ABAB
    ABCABC
    ABCABC
      

  29.   

    第二题我也没有想出来。。其他还好呢。如果仅是:4323254,规则为:ABAB。5723723,规则为ABCABC的话还是蛮简单。如果有33224556 AABB 22222 AAAAA的话就麻烦了