Heim >Backend-Entwicklung >PHP-Tutorial >[PHP-Lernen] So erreichen Sie eine vollständige Anordnung der Zeichenfolgen

[PHP-Lernen] So erreichen Sie eine vollständige Anordnung der Zeichenfolgen

little bottle
little bottlenach vorne
2019-04-23 17:23:282827Durchsuche

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.&#39;===&#39;.$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);

Verwandtes Tutorial:

PHP-Video-Tutorial

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!

Stellungnahme:
Dieser Artikel ist reproduziert unter:cnblogs.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen