Der Hauptinhalt dieses Artikels ist die Verwendung von PHP zur Realisierung der vollständigen Anordnung von Zeichenfolgen. Es hat einen gewissen Referenzwert.
Geben Sie eine Zeichenfolge ein und drucken Sie alle Permutationen der Zeichen in der Zeichenfolge in Wörterbuchreihenfolge aus.
Wenn Sie beispielsweise die Zeichenfolge abc eingeben, werden alle Zeichenfolgen abc, acb, bac, bca, cab und cba gedruckt, die nach den Zeichen a, b, c angeordnet werden können.
Ideen:
1. Verwenden Sie Rekursion, um einen rekursiven Baum zu bilden, um den Effekt der Tiefe zuerst zu erzielen und den ersten Buchstaben zu korrigieren
2. Die Tiefenpriorität kann erst nach dem Zurücksetzen erneut durchgeführt werden
3. Backtracking-Methode Gedanken
4. Ein Bild und ein Vorgang können nur langsam verstanden werden
<?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);
Das obige ist der detaillierte Inhalt von[PHP-Lernen] So erreichen Sie eine vollständige Anordnung der Zeichenfolgen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!