php 面试题分析

逻辑算法考察

解题方法:

就像做数学题一样
找到要处理的数组或者字符串的规律,也可能是一个数列的规律,如果要求使用伪代码实现,建议先说明规律,然后白话说明解题步骤即可。

<?php
//1,1,2,3,5,8,13...求第30位数是多少
$arr = [1,1];
for($i=2;$i<30;$i++)
{
	$arr[$i] = $arr[$i-1] + $arr[$i-2];
}
var_dump($arr);

//请写出一个函数,实现以下功能:字符串“open_door”,"make_by_id"转换成"OpenDoor","MakeById"
function turn($a)
{
	$c = '';
	$b = explode("_",$a);
	foreach($b as $val)
	{
		$c .= ucfirst($val);
	}
	return $c;
}

var_dump(turn("open_door"));
var_dump(turn("make_by_id"));

模拟内置函数

//不使用php函数,用方法写一个反转字符串的函数
//abcdefg	->	gfedcba
function str_rev($str)
{
	for($i=0;true;$i++)
	{
		if(!isset($str[$i]))
		{
			break;
		}
	}
	$return = '';
	for($j=$i-1;$j>=0;$j--)
	{
		$return .= $str[$j];
	}
	return $return;
}
echo str_rev('abcdefg');

//写一个函数,要求不使用array_merge完成多个数组的合并
function merge()
{
	$return  = [];
	$arrays = func_get_args();
	foreach($arrays as $arr)
	{
		if(is_array($arr))
		{
			foreach($arr as $val){
				$return[] = $val;
			}
		}
	}
	return $return;
}

var_dump(merge([1],[2,3,4]));



猜你喜欢

转载自blog.csdn.net/dote2r/article/details/77931283
今日推荐