Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Laksanakan pilih atur penuh C++ bagi rentetan yang diberikan menggunakan STL

Laksanakan pilih atur penuh C++ bagi rentetan yang diberikan menggunakan STL

王林
王林ke hadapan
2023-09-01 23:33:06953semak imbas

Laksanakan pilih atur penuh C++ bagi rentetan yang diberikan menggunakan STL

Apabila aksara rentetan yang diberikan disusun semula dalam sebarang bentuk, susunan rentetan terbentuk. Sebagai contoh, dalam tutorial ini, kita akan membincangkan cara untuk mencetak semua pilih atur rentetan yang diberikan menggunakan perpustakaan templat standard C++

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.

Terdapat dua cara untuk mencetak semua pilih atur rentetan yang diberikan

Rotate()

Kami pergi ke Kaedah pertama yang digunakan ialah menggunakan kaedah putaran. Dalam kaedah ini, kami akan menggunakan fungsi putar STL, yang digunakan untuk memutar rentetan, dan kami akan menggunakan rekursi untuk mencetak susunan.

Contoh

C++ kod untuk kaedah di atas

#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;
}

Output

ADT
ATD
DTA
DAT
TAD
TDA

Next_Permutation

Sekarang kita akan menggunakan satu lagi fungsi STL, next_Permutation, sebagai nilai pulangan seterusnya bagi thiss rentetan itu wujud. Jika tidak, pulangan palsu.

Seperti yang anda ketahui, fungsi ini menyemak pilihatur seterusnya, oleh itu, kita perlu mengisih rentetan secara leksikografi untuk mendapatkan semua pilih atur yang mungkin.

Contoh

C++ kod untuk kaedah di atas

#include<bits/stdc++.h>
using namespace std;
int main(){
    string s = "ADT"; // given string
    sort(s.begin(), s.end()); // sorting the string
    do{
        cout << s << "\n"; // printing the permutations
    }while(next_permutation(s.begin(), s.end())); // till next_permutations returns false
    return 0;
}

Output

ADT
ATD
DAT
DTA
TAD
TDA

Dalam program di atas, kami mengisih rentetan dan kemudian dengan bantuan fungsi next_permutation, kami mencetak semua pilih atur yang mungkin.

Kesimpulan

Dalam tutorial ini, kami mencetak semua pilih atur yang mungkin bagi rentetan yang diberikan dengan bantuan STL dalam C++. Kami juga mempelajari program C++ untuk masalah tersebut dan beberapa fungsi asas STL serta penggunaannya. Kami harap anda mendapati tutorial ini membantu.

Atas ialah kandungan terperinci Laksanakan pilih atur penuh C++ bagi rentetan yang diberikan menggunakan STL. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:tutorialspoint.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam