2020年PHP 面试问题(一)
发布时间:2020-12-26 19:09:12 所属栏目:交互 来源:网络整理
导读: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架构师教程目录大全,只要你看完保证薪资上升一个台阶(持续更新) ? (编辑:清远站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |


