加入收藏 | 设为首页 | 会员中心 | 我要投稿 核心网 (https://www.hxwgxz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 运营 > 正文

2020年PHP 面试问题(一)

发布时间:2020-12-26 03:48:04 所属栏目:运营 来源:网络整理
导读:1.get,post 的区别 1、GET在浏览器回退时是无害的,而POST会再次提交请求。 2、GET产生的URL地址可以被Bookmark,而POST不可以。 3、GET请求会被浏览器主动cache,而POST不会,除非手动设置。 4、GET请求只能进行url编码,而POST支持多种编码方式。 5、GET请

5、给出一个字符串,返回里面连续字母的个数,比如:abbcddde,返回 1a2b1c3de;
代码实现:

 public function str($str)
    {
        $re = '';
        $arr = str_split($str);//把字符串变成数组,开始我想到的是用for循环来处理,这个函数同事提醒了才发现
        $key = 0; //key 用来记录下标,为了方便计算前面的数字
        for ($i = 0; $i < count($arr); $i++) {
            $v = $arr[$i];
            if ($arr[$i] == $arr[$i + 1]) {
                continue;//如果当前的值和下一个值相等,跳出当前循环,进入下一个
            } else {
                $re  .= ($i - $key + 1) . $v; //不相等时计算出前面的数字,
                $key = $i + 1;// 同时 key 下标重新复制
            }
        }

        return $re;
    }

  

6、约瑟夫环问题,猴子选大王

一群猴子排成一圈,按1,2,…,n依次编号。然后从第1只开始数,数到第m只,把它踢出圈,从它后面再开始数,再数到第m只,在把它踢出去…,如此不停的进行下去,直到最后只剩下一只猴子为止,那只猴子就叫做大王。要求编程模拟此过程,输入m、n,输出最后那个大王的编号。用程序模拟该过程。

unction mk($n,$m){
        $arr = range(1,$n);//构造一个数组
        $i = 1; //从第一个开始循环
        while(count($arr)>1){ //如果总数大于1
            ($i % $m != 0) && array_push($arr,$arr[$i-1]);//不被踢出则压入数组尾部
            unset($arr[$i-1]);//压入数组然后删除
            $i++;//继续循环
        }  
        return $arr[$i-1]; //直至最后剩下一个为大王 
}
print_r(mk(6,8));   //第3只为大王

  

更多学习内容请访问:

腾讯T3-T4标准精品PHP架构师教程目录大全,只要你看完保证薪资上升一个台阶(持续更新)

?

(编辑:核心网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读