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

王林
Lepaskan: 2023-09-01 23:33:06
ke hadapan
953 orang telah melayarinya

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.
Salin selepas log masuk

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;
}
Salin selepas log masuk

Output

ADT
ATD
DTA
DAT
TAD
TDA
Salin selepas log masuk

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;
}
Salin selepas log masuk

Output

ADT
ATD
DAT
DTA
TAD
TDA
Salin selepas log masuk

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!

Label berkaitan:
sumber:tutorialspoint.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan