Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

เรียงสับเปลี่ยนถัดไปในพจนานุกรมใน C ++


ที่นี่เราจะมาดูวิธีการสร้างการเปลี่ยนแปลงลำดับถัดไปของ lexicographically string ใน C ++ การเรียงสับเปลี่ยนลำดับถัดไปโดยพื้นฐานแล้วเป็นการเรียงสับเปลี่ยนที่มากกว่า ตัวอย่างเช่น ตัวถัดไปของ “ACB” จะเป็น “BAC” ในบางกรณี การเรียงสับเปลี่ยนลำดับถัดไปจะไม่มีอยู่ เช่น “BBB” หรือ “DCBA” เป็นต้น

ใน C++ เราสามารถทำได้โดยใช้ฟังก์ชันไลบรารีชื่อ next_permutation() มีอยู่ในไฟล์ส่วนหัวของอัลกอริทึม

ตัวอย่าง

#include <iostream>
#include <algorithm>
using namespace std;
main() {
   string s = "DBAC";
   for(int i = 0; i<5; i++) {
      bool val = next_permutation(s.begin(), s.end());
      if (val == false) {
         cout << "No next permutation" << endl;
         break;
      } else
      cout << "Next: " << s << endl;
   }
}

ผลลัพธ์

Next: DBCA
Next: DCAB
Next: DCBA
No next permutation