Computer >> Máy Tính >  >> Lập trình >> C ++

Các phép hoán vị trong C ++ của một chuỗi đã cho bằng cách sử dụng STL

Hoán vị của một chuỗi được hình thành khi ký tự của các chuỗi đã cho được sắp xếp lại dưới bất kỳ hình thức nào. Trong hướng dẫn này, chúng ta sẽ thảo luận về cách chúng ta có thể in tất cả các hoán vị của một chuỗi đã cho bằng cách sử dụng Thư viện mẫu chuẩn của C ++, chẳng hạn như

 Đầu vào:s =“ADT” Đầu ra:“ADT”, “ATD”, “DAT”, “DTA”, “TAD”, “TDA” Giải thích:Trong đầu ra đã cho, bạn có thể thấy tất cả các chuỗi được tạo có cùng ba ký tự hiện diện trong chuỗi của chúng ta và chỉ được sắp xếp lại do đó chúng phù hợp với định nghĩa về hoán vị của một chuỗi. 

Có hai phương pháp mà chúng ta có thể in tất cả các hoán vị của một chuỗi đã cho

Xoay ()

Phương pháp đầu tiên chúng tôi sẽ sử dụng là sử dụng phương pháp xoay. Trong phương pháp này, chúng tôi sẽ sử dụng hàm xoay của STL, được sử dụng để xoay chuỗi của chúng tôi và chúng tôi sẽ sử dụng đệ quy để in các hoán vị.

Ví dụ

Mã C ++ cho phương pháp trên

 #include  using namespace std; void hoán vị (string s, string ans) {if (s.size () ==0) {// khi chuỗi của chúng ta cần // được xoay trở nên rỗng thì có nghĩa là // rằng hoán vị của chúng ta được lưu trữ trong ans cout < 

Đầu ra

 ADTATDDTADATTADTDA 

Next_Permutation

Bây giờ chúng ta sẽ sử dụng một hàm khác của STL, cụ thể là next_Permutation như tên cho thấy, lượt trả về của hàm này là liệu hoán vị tiếp theo của chuỗi này có tồn tại hay không. Nếu không, thì nó trả về false.

Như bạn đã biết, hàm này kiểm tra hoán vị tiếp theo; do đó, trước tiên chúng ta cần sắp xếp chuỗi theo từ điển để nhận được tất cả các hoán vị có thể có.

Ví dụ

Mã C ++ cho phương pháp trên

 #include  using namespace std; int main () {string s ="ADT"; // sắp xếp chuỗi đã cho (s.begin (), s.end ()); // sắp xếp chuỗi do {cout < 

Đầu ra

 ADTATDDATDTATADTDA 

Trong chương trình trên, chúng tôi sắp xếp chuỗi của mình và sau đó với sự trợ giúp của hàm next_permutation, chúng tôi in tất cả các hoán vị có thể có.

Kết luận

Trong hướng dẫn này, chúng tôi in tất cả các hoán vị có thể có của chuỗi đã cho bằng cách sử dụng sự trợ giúp của STL trong C ++. Chúng tôi cũng đã học chương trình C ++ cho vấn đề này và một số hàm STL cần thiết và cách sử dụng của chúng. Chúng tôi hy vọng bạn thấy hướng dẫn này hữu ích.