ホームページ >バックエンド開発 >PHPチュートリアル >一个php兑现的生成排列的算法

一个php兑现的生成排列的算法

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBオリジナル
2016-06-13 11:12:07841ブラウズ

一个php实现的生成排列的算法

<?phpfunction perm($s, $n, $index){     if($n == 0)     {         return '';    }       else    {           $nIndex = count($index);    //可用的字符串下标        $res = array();        foreach($index as $i => $v)         {               $tmp = $index;            unset($tmp[$i]);        //去掉当前的前缀            /* 调试信息,便于理解            echo "len $n , cur $i , index:\n";            var_dump($tmp);             */            $ret = perm($s, $n-1, $tmp);   //递归得到稍短的排列            if($ret != '')             {                   foreach($ret as $r)                 {                       $res[] = $s[$v] . $r;   //将稍短的排列逐个拼上当前的前缀                }               }               else            {                   $res[] = $s[$v];            }           }           return $res;    }   }function getPerm($s){    $n = strlen($s);    $index = range(0, $n-1);    //得到不同长度的排列    for($i=1; $i

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。