真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

php算法面試題及答案示例的分析

這篇文章將為大家詳細(xì)講解有關(guān)php算法面試題及答案示例的分析,小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。

創(chuàng)新互聯(lián)建站長期為上千余家客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對(duì)不同對(duì)象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺(tái),與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為羅田企業(yè)提供專業(yè)的網(wǎng)站制作、成都網(wǎng)站制作羅田網(wǎng)站改版等技術(shù)服務(wù)。擁有十多年豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開發(fā)。

php有什么用

php是一個(gè)嵌套的縮寫名稱,是英文超級(jí)文本預(yù)處理語言,它的語法混合了C、Java、Perl以及php自創(chuàng)新的語法,主要用來做網(wǎng)站開發(fā),許多小型網(wǎng)站都用php開發(fā),因?yàn)閜hp是開源的,從而使得php經(jīng)久不衰。

題目一:

一群猴子排成一圈,按1,2,…,n依次編號(hào)。然后從第1只開始數(shù),數(shù)到第m只,把它踢出圈,從它后面再開始數(shù),再數(shù)到第m只,在把它踢出去…,如此不停的進(jìn)行下去,直到最后只剩下一只猴子為止,那只猴子就叫做大王。要求編程模擬此過程,輸入m、n, 輸出最后那個(gè)大王的編號(hào)。

function king($m, $n) {
	if (1 >= $n) {
		return $n;
	}
	$monkeys = range(1, $n);
	$count = $n;
	while ($count > 1) {
		$remainder = $m % $count;
		unset($monkeys[$remainder - 1]);
		$monkeys = array_values($monkeys);
		$count--;
	}
	return array_shift($monkeys);
}

題目二:

有一母牛,到4歲可生育,每年一頭,所生均是一樣的母牛,到15歲絕育,不再能生,20歲死亡,問n年后有多少頭牛。

function cows ($n) {
	$cows = [1];
	for ($i = 1; $i <= $n; $i++) {
		// 新出生的牛
		$new_number = 0;
		foreach ($cows as $age => $num) {
			// 4歲到14歲的牛生育新的母牛
			if ($age >= 3 &
			&
			$age <
			= 13) {
				$new_number += $num;
			}
		}
		// 將新出生的牛加到數(shù)組開頭
		array_unshift($cows, $new_number);
		// 取出數(shù)組的前20個(gè)單元
		$cows = array_slice($cows, 0, 20);
	}
	return array_sum($cows);
}

題目三:

冒泡排序

function bubble_sort ($array) {
	$array = array_values($array);
	for ($i = 0; $i < count($array); $i++) {
		for ($j = 0;$j < count($array) - $i - 1; $j++) {
			if ($array[$j] > $array[$j + 1]) {
				$temp = $array[$j + 1];
				$array[$j + 1] = $array[$j];
				$array[$j] = $temp;
			}
		}
	}
	return $array;
}

題目四:

快速排序

function quick_sort ($array) {
	if (count($array) <
	= 1) {
		return $array;
	}
	$left_array = [];
	$right_array = [];
	$key = array_shift($array);
	foreach ($array as $value) {
		if ($key > $value) {
			$left_array[] = $value;
		} else {
			$right_array[] = $value;
		}
	}
	return array_merge(quick_sort($left_array), [$key], quick_sort($right_array));
}

(學(xué)習(xí)視頻分享:php視頻教程)

題目五:

選擇排序

function select_sort ($array) {
	$sort_array = [];
	while (count($array)) {
		$min = null;
		$min_key = null;
		foreach ($array as $key => $value) {
			if (is_null($min)) {
				$min = $value;
				$min_key = $key;
			} elseif ($min > $value) {
				$min = $value;
				$min_key = $key;
			}
		}
		$sort_array[] = $min;
		unset($array[$min_key]);
	}
	return $sort_array;
}

題目六:

字符集合:輸入一個(gè)字符串,求出該字符串包含的字符集合,并按順序排序

function unique_char ($str) {
	$arr = array_unique(str_split($str));
	sort($arr);
	return implode('', $arr);
}

題目七:

遍歷一個(gè)文件下的所有文件和子文件夾下的文件

function all_file ($dir) {
	if (is_dir($dir)) {
		$resource = opendir($dir);
		while ($file = readdir($resource)) {
			if (in_array($file, ['.', '..'])) {
				continue;
			} elseif (is_dir($dir . '/' . $file)) {
				all_file($dir . '/' . $file);
			} else {
				echo $dir . '/' . $file, "\n";
			}
		}
	} else {
		echo $dir, "\n";
	}
}

題目八:

有個(gè)人想上一個(gè)n級(jí)的臺(tái)階,每次只能邁1級(jí)或者邁2級(jí)臺(tái)階,問:這個(gè)人有多少種方法可以把臺(tái)階走完?例如:總共3級(jí)臺(tái)階,可以先邁1級(jí)再邁2級(jí),或者先邁2級(jí)再邁1級(jí),或者邁3次1級(jí)總共3中方式.(實(shí)際上是斐波那契數(shù)列)

function ladder($steps) {
	return $steps <
	2 ? 1 : ladder($steps - 1) + ladder($steps - 2);
}

題目九:

遍歷二叉樹

class Node {
	public $value;
	public $left;
	public $right;
}
/**
 * 先序遍歷 根節(jié)點(diǎn) ---> 左子樹 ---> 右子樹
 *
 * @param $root
 */
function preorder ($root) {
	echo $root->value;
	if (!empty($root->left)) {
		preorder($root->left);
	}
	if (!empty($root->right)) {
		preorder($root->right);
	}
}
/**
 * 中序遍歷,左子樹---> 根節(jié)點(diǎn) ---> 右子樹
 *
 * @param $root
 */
function inorder ($root) {
	if (!empty($root->left)) {
		inorder($root->left);
	}
	echo $root->value;
	if (!empty($root->right)) {
		inorder($root->right);
	}
}
/**
 * 后序遍歷,左子樹 ---> 右子樹 ---> 根節(jié)點(diǎn)
 *
 * @param $root
 */
function tailorder ($root) {
	if (!empty($root->left)) {
		tailorder($root->left);
	}
	if (!empty($root->right)) {
		tailorder($root->right);
	}
	echo $root->value;
}
$d = new Node;
$d->value = 'D';
$b = new Node;
$b->value = 'B';
$b->left = $d;
$e = new Node;
$e->value = 'E';
$f = new Node;
$f->value = 'F';
$c = new Node;
$c->value = 'C';
$c->left = $e;
$c->right = $f;
$a = new Node;
$a->value = 'A';
$a->left = $b;
$a->right = $c;
preorder($a);
echo "\n";
inorder($a);
echo "\n";
tailorder($a);
echo "\n";

關(guān)于“php算法面試題及答案示例的分析”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,使各位可以學(xué)到更多知識(shí),如果覺得文章不錯(cuò),請把它分享出去讓更多的人看到。


新聞標(biāo)題:php算法面試題及答案示例的分析
網(wǎng)頁網(wǎng)址:http://weahome.cn/article/jpieed.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部