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
Freigeben: 2023-04-06 10:02:01
nach vorne
2824 Leute haben es durchsucht

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);
Nach dem Login kopieren

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!

Verwandte Etiketten:
php
Quelle:cnblogs.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage