0
字符串我有問題,我的代碼,同時尋找串的排列字符串長度大於7.如「ABCDEFGH」更大。我必須找到長達12字的字排列。請查看我的代碼並建議是否可以完成任何優化。排列在PHP
function permute($str)
{
if (strlen($str) < 2)
{
return array($str);
}
$permutations = array();
$tail = substr($str, 1);
foreach (permute($tail) as $permutation)
{
$length = strlen($permutation);
for ($i = 0; $i <= $length; $i++)
{
$permutations[] = substr($permutation, 0, $i) . $str[0] . substr($permutation, $i);
}
}
/* Return the result */
return $permutations;
}
$arr = permute('abcdefghijkl');
可以估算出*號*長度的字符串的排列'N',以及如何之快,數量的增長? –
它有什麼問題?排列在O(n!)中運行,因此需要很長時間才能將12個長度的字符串運行爲12!是一個很大的數字。 –
儘管在多項式時間中生成第n個排列是有一個技巧的,但如果你想要所有的排列,你需要計算所有的n!其中。 –