Heim >Backend-Entwicklung >C++ >Implementieren Sie die vollständige C++-Permutation einer bestimmten Zeichenfolge mithilfe von STL

Implementieren Sie die vollständige C++-Permutation einer bestimmten Zeichenfolge mithilfe von STL

王林
王林nach vorne
2023-09-01 23:33:06987Durchsuche

Implementieren Sie die vollständige C++-Permutation einer bestimmten Zeichenfolge mithilfe von STL

Wenn die Zeichen einer bestimmten Zeichenfolge in irgendeiner Form neu angeordnet werden, entsteht eine Anordnung der Zeichenfolge. In diesem Tutorial besprechen wir beispielsweise, wie alle Permutationen einer bestimmten Zeichenfolge mithilfe der Standardvorlagenbibliothek von C++ gedruckt werden.

Input : s = “ADT”

Output : “ADT”, “ATD”, “DAT”, “DTA”, “TAD”, “TDA”

Explanation : In the given output as you can see all the string are made up of same three character present in our string and are just rearranged thus they fit in the definition of a permutation of a string now there is one more thing to note these are all the permutations possible of string s.

Es gibt zwei Möglichkeiten, alle Permutationen einer bestimmten Zeichenfolge zu drucken. Rotate()

Wir sind gehe zu Die erste verwendete Methode ist die Verwendung der Rotationsmethode. Bei dieser Methode verwenden wir die Rotationsfunktion von STL, die zum Drehen von Zeichenfolgen verwendet wird, und verwenden Rekursion, um die Anordnung zu drucken.

Beispiel: C++-Code für die obige Methode Die Zeichenfolge existiert. Wenn nicht, wird false zurückgegeben.

Wie Sie wissen, prüft diese Funktion die nächste Permutation. Daher müssen wir die Zeichenfolge zunächst lexikografisch sortieren, um alle möglichen Permutationen zu erhalten.

Beispiel

C++-Code für die obige Methode

#include<bits/stdc++.h>
using namespace std;
void permutations(string s, string ans){
    if(s.size() == 0) {
// when our string which needs to
//be rotated becomes empty then it means
//that our permutation is stored in ans
        cout << ans << "\n";
        return ;
    }
    for(int i = 0; i < s.size(); i++){
        permutations(s.substr(1), ans + s[0]);
        // we are adding the
        // first character in our ans
        // passing all elements from index 1 in our
        // rotate string for next function.
        rotate(s.begin(), s.begin()+1, s.end());
        //rotating such that our second element becomes first
    }
}
int main(){
    string s = "ADT"; // given string
    permutations(s, "");
    return 0;
}

Ausgabe

ADT
ATD
DTA
DAT
TAD
TDA

Im obigen Programm sortieren wir die Zeichenfolge und drucken dann mit Hilfe der Funktion next_permutation alle möglichen Permutationen aus.

Fazit

In diesem Tutorial haben wir alle möglichen Permutationen einer bestimmten Zeichenfolge mit Hilfe von STL in C++ gedruckt. Wir haben auch das C++-Programm für das Problem sowie einige grundlegende STL-Funktionen und deren Verwendung kennengelernt. Wir hoffen, dass Sie dieses Tutorial hilfreich fanden.

Das obige ist der detaillierte Inhalt vonImplementieren Sie die vollständige C++-Permutation einer bestimmten Zeichenfolge mithilfe von STL. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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