0219笔试题(偏算法)

2019-02-20  本文已影响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;


上一篇下一篇

猜你喜欢

热点阅读