美文网首页
0219笔试题(偏算法)

0219笔试题(偏算法)

作者: 白雪歌送武判官归天 | 来源:发表于2019-02-20 00:10 被阅读0次

    1、不用explode把字符串‘aa&&bb’分割为数组['aa','bb']

    function explode_my($str,$p){
        $array = array();
        $pLen = strlen($p);
        while(stripos($str, $p) !== false){
            $weizhi = stripos($str, $p);
            $arr_str = substr($str,0,$weizhi);
            $str = substr($str,$weizhi+$pLen);
            array_push($array,$arr_str);
        }
        if(!empty($str)){
            array_push($array,$str);
        }
        return $array;
    }
    $str = 'aa&&bb&&a$ee&&';
    $p= '&&';
    explode_my($str,$p);
    

    2、不用implode实现数组转字符串

    function implode_my($array,$p){
        $str='';
        for($i=0;$i<count($array);$i++){
            if($i == count($array)-1){
                $str .= $array[$i];
                return $str;
            }else{
                $str .= $array[$i].$p;
            }
        }
    }
    $arr=['a','b','c'];
    $p='*';
    echo implode_my($arr,$p);
    

    3、不大于N的最大质数

    function N($n){
        for($i=$n;$i>1;$i--){
            $k=0;
            for($j=1;$j<=$n/2;$j++){
                if($i % $j == 0 ){
                    $k++;
                }
            }
            if($k==1){
                return $i;
            }
        }
    }
    

    4、1000个[0,999]范围的数中有两个重复的数,找出来

    function find(){
        $a=range(0,999);
        $a[300]= 500;
        for($i=0;$i<1000;$i++){
            if($a[$i]!=$i){
                echo $a[$i];
            }
        }
    }
    

    5、n个人,从1开始报数,第m个淘汰后,在从1开始数(约瑟夫环问题)

    function Josephus($m,$n){
        $m = range(1,$m);
        $i = 0;
        while(count($m)>1){
            if(($i+1)%$n==0){
                unset($m[$i]);
            }else{
                array_push($m,$m[$i]);
                unset($m[$i]);
            }
            $i++;
        }
        echo current($m);
    }
    

    6、找26个字母所有子集

    #include <iostream>
    using namespace std;
    
    int main()
    {
        int dCapitalLetterNum=3;
        char caCapitalLetter[]="ABCDEFGHIJKLMNOPQRSTUVWXYZ";
        for(int i=1;i<1<<dCapitalLetterNum;++i)
        {
            for(int j=0;j<dCapitalLetterNum;++j)
            {
                if(i>>j&0x1)
                    cout<<caCapitalLetter[j];
            }
            cout<<endl;
        }
    
        //输出空集
        cout<<"空集"<<endl;
    }
    

    7、数据库中存在更新,不存在则插入

    INSERT INTO ipstats VALUES('192.168.0.1', 1) ON DUPLICATE KEY UPDATE clicks=clicks+1;
    
    
    

    相关文章

      网友评论

          本文标题:0219笔试题(偏算法)

          本文链接:https://www.haomeiwen.com/subject/uqpqyqtx.html