国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > PHP > 正文

PHP實現字符串的全排列詳解

2024-05-05 00:08:37
字體:
來源:轉載
供稿:網友

輸入一個字符串,按字典序打印出該字符串中字符的所有排列。

例如,輸入字符串abc,則打印出由字符a,b,c所能排列出來的所有字符串abc,acb,bac,bca,cab和cba。 
思路:
1.利用遞歸形成遞歸樹,達到深度優先,固定首字母的效果

2.得復位以后才能再次深度優先

3.回溯法思想

4.一張圖和一個運行過程,只能慢慢體會了

<?phpfunction test($str,$start,&$res){    //遞歸終止條件    if($start==strlen($str)){        $res[]=$str;        return;    }      //     for($i=$start;$i<strlen($str);++$i){        if($i==$start || $str{$i}!=$str{$start}){            swap($str,$i,$start);var_dump($str.'==='.$start);var_dump($res);sleep(1);            test($str,$start+1,$res);            swap($str,$i,$start);        }         }      return $res;}function swap(&$str,$a,$b){    if(!is_string($str)) return;    $t=$str{$a};    $str{$a}=$str{$b};    $str{$b}=$t;}$str="abc";$res=array();//調用入口,從索引0開始$res=test($str,0,$res);var_dump($res);
string(7) "abc===0"array(0) {}string(7) "abc===1"array(0) {}string(7) "abc===2"array(0) {}string(7) "acb===1"array(1) { [0]=> string(3) "abc"}string(7) "acb===2"array(1) { [0]=> string(3) "abc"}string(7) "bac===0"array(2) { [0]=> string(3) "abc" [1]=> string(3) "acb"}string(7) "bac===1"array(2) { [0]=> string(3) "abc" [1]=> string(3) "acb"}string(7) "bac===2"array(2) { [0]=> string(3) "abc" [1]=> string(3) "acb"}string(7) "bca===1"array(3) { [0]=> string(3) "abc" [1]=> string(3) "acb" [2]=> string(3) "bac"}string(7) "bca===2"array(3) { [0]=> string(3) "abc" [1]=> string(3) "acb" [2]=> string(3) "bac"}string(7) "cba===0"array(4) { [0]=> string(3) "abc" [1]=> string(3) "acb" [2]=> string(3) "bac" [3]=> string(3) "bca"}string(7) "cba===1"array(4) { [0]=> string(3) "abc" [1]=> string(3) "acb" [2]=> string(3) "bac" [3]=> string(3) "bca"}string(7) "cba===2"array(4) { [0]=> string(3) "abc" [1]=> string(3) "acb" [2]=> string(3) "bac" [3]=> string(3) "bca"}string(7) "cab===1"array(5) { [0]=> string(3) "abc" [1]=> string(3) "acb" [2]=> string(3) "bac" [3]=> string(3) "bca" [4]=> string(3) "cba"}string(7) "cab===2"array(5) { [0]=> string(3) "abc" [1]=> string(3) "acb" [2]=> string(3) "bac" [3]=> string(3) "bca" [4]=> string(3) "cba"}array(6) { [0]=> string(3) "abc" [1]=> string(3) "acb" [2]=> string(3) "bac" [3]=> string(3) "bca" [4]=> string(3) "cba" [5]=> string(3) "cab"}

PHP,字符串,全排列


注:相關教程知識閱讀請移步到PHP教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 赣榆县| 卢湾区| 贵南县| 中山市| 鹿邑县| 永春县| 霍邱县| 交城县| 德化县| 马龙县| 永泰县| 安溪县| 无棣县| 蒲江县| 尼木县| 宽城| 长春市| 玉林市| 博白县| 桦甸市| 叶城县| 静宁县| 凤山县| 甘肃省| 石台县| 潞西市| 方正县| 惠来县| 宣威市| 阿图什市| 忻州市| 高青县| 乐业县| 绥化市| 景宁| 安龙县| 石河子市| 商都县| 安化县| 德格县| 桐城市|