PHP解演算法題 最小運算元

2021-06-16 15:36:52 字數 976 閱讀 2400

原題:

無意中看到這個題,最近php用的比較多,就用php寫了乙個,當然這個還不完全,只需要從所有路徑中求出最短的就可以了

測試例子:

$a = 'hit';

$b = 'cog';

$dict = array("hot","dot","dog","lot","log");

$change[0] = $a;

getchange($change, $b, $dict, 0);

使用回溯法求解,遍歷所有可能的情況,其中change()函式的作用是判斷兩個字串是否可以改變乙個字元而相互轉換。

<?php

/*** 獲取所有可行轉化路徑

* @param array $change 儲存轉化路徑

* @param string $b 目標字串

* @param array $dict 詞典

* @param int $i

*/function getchange($change, $b, $dict, $i)

if (change($change[$i], $b))

}echo $b . '

'; return;

} for ($k = 0; $k < count($dict); $k++)

}if ($j > $i)

}} }

/*** 比較兩個字串是否只相差乙個字元

* @param string $a

* @param string $b

*/function change($a, $b)

$count = 0;

for ($i = 0; ($i < strlen($a)) && ($count <= 1); $i++)

}if ($count > 1)

return true;

}?>

演算法題 猴子吃桃 解

剛開始學c語言,在書上看見了道演算法題,嘗試解了下 題目 猴子第一天摘了若干個桃子,當即吃了一半,還不解饞,又多吃了乙個 第二天,吃剩下的桃子的一半,還不過癮,又多吃了乙個 以後每天都吃前一天剩下的一半多乙個,到第10天想再吃時,只剩下乙個桃子了。問第一天共摘了多少個桃子?思路 通過猴子第十天只剩乙...

PHP經典演算法題

面試題 演算法題 1 插入排序 一維陣列 基本思想 每次將乙個待排序的資料元素,插入到前面已經排好序的數列中的適當位置,使數列依然有序 直到待排序資料元素全部插入完為止。示例 初始關鍵字 49 38 65 97 76 13 27 49 j 2 38 38 49 65 97 76 13 27 49 j...

幾個PHP演算法題

有5個人偷了一堆蘋果,準備在第二天分贓。晚上,有一人遛出來,把所有菜果分成5份,但是多了乙個,順手把這個扔給樹上的猴了,自己先拿1 5藏了。沒想到其他四人也都是這麼想的,都如第乙個人一樣分成5份把多的那乙個扔給了猴,偷走了1 5。第二天,大家分贓,也是分成5份多乙個扔給猴了。最後一人分了乙份。問 共...