3年PHPer的面试总结

一·反转函数,反转数组:

function reverse($arr) {
    $n = count($arr);
    $left = 0;
    $right = $n - 1;
    while ($left < $right) {
        $temp = $arr[$left];
        $arr[$left++] = $arr[$right];
        $arr[$right--] = $temp;
    }
    return $arr;
}

二·将一个数组中的元素随机(打乱):

function custom_shuffle($arr) {
    $n = count($arr);
    for ($i = 0; $i < $n; $i++) {
        $rand_pos = mt_rand(0, $n-1);
        if ($rand_pos != $i) {
            $temp = $arr[$i];
            $arr[$i] = $arr[$rand_pos];
            $arr[$rand_pos] = $temp;
        }
    }
    return $arr;
}

三·给一个有数字和字母的字符串,让连着的数字和字母对应:

function number_alphabet($str) {
    $number = preg_split('/[a-zA-Z]+/',$str, -1,PREG_SPLIT_NO_EMPTY);
    $alphabet = preg_split('/\d+/',$str, -1, PREG_SPLIT_NO_EMPTY);
    $n = count($number);
    for ($i = 0; $i < $n; $i++) {
        echo $number[$i] . ':' .$alphabet[$i].'<br>';
    }
}

$str = 'ssSE21323LSGEMLs2093822ss983sgessee2727';
number_alphabet($str);

四·求n以内的质数(质数的定义:在大于1的自然数中,除了1和它本身以外,无法被其他自然数整除的数)#

思路: 1.(质数筛选定理)n不能够被不大于根号n的任何质数整除,则n是一个质数
2.除了2的偶数都不是质数

function get_prime($n) {
    $prime = array(2);//2为质数
    for ($i = 3; $i <= $n; $i += 2) {//偶数不是质数,步长可以加大
        $sqrt = intval(sqrt($i));//求根号n
        for ($j = 3; $j<=$sqrt;$j +=2) {//i是奇数,当然不能被偶数整除,步长也可以加大。
            if($i % $j == 0) {
                break;
            }
        }
        if($j > $sqrt) {
            array_push($prime,$i);
        }
    }
    return $prime;
}
print_r(get_prime(1000));
0
如无特殊说明,文章均为本站原创,转载请注明出处

该文章由 发布

这货来去如风,什么鬼都没留下!!!
发表我的评论

Hi,请填写昵称和邮箱!

取消评论
代码 贴图 加粗 链接 删除线 签到