您当前的位置: 首页 > 学无止境 > 心得笔记 网站首页心得笔记
8-3 其他逻辑算法考察点
发布时间:2020-10-07 18:31:16编辑:雪饮阅读()
真题1
1,1,2,3,5,8,13,21,34…求第30位的数是多少?
答案
<?php
function myDump($val){
echo "<pre>";
print_r($val);
echo "</pre>";
}
//1,1,2,3,5,8,13,21,34...
//首先总结规律会发现每次前两个数之和就是第三个数
//那么这里就准备第一组的前两个数用于向第30个进行推导
$arr=[1,1];
//既然每组第三个数字等于前两个数字之和,所以我们就从这个基础数组的第3个下标做为i的基值
//然后动态位数组填充追加新值,直到第30个
for($i=2;$i<30;$i++){
$arr[$i]=$arr[$i-1]+$arr[$i-2];
}
myDump(implode(",",$arr));
真题2
写一个函数将“open_door”、”make_by_id”…转换为”OpenDoor”、”MakeByID”….
首先分析原理,其实无非就是先用下划线分割成数组,然后将每个数组元素(单词)的首字母转换为大写(可以使用ucfirst)
那么代码实现如:
<?php
function myDump($val){
echo "<pre>";
print_r($val);
echo "</pre>";
}
function strHandle($str){
$return = '';
$arr=explode("_",$str);
foreach($arr as $val){
$return.=ucfirst($val);
}
return $return;
}
myDump(strHandle("open_door"));
myDump(strHandle("make_by_id"));
关键字词:php,算法
上一篇:一个视频教会你算法的空间复杂度
下一篇:8-4 模拟内置函数实现考察点