এখানে আমরা দেখব কিভাবে সি++-এ একটি স্ট্রিং-এর লেক্সিকোগ্রাফিকালি পরবর্তী পারমিউটেশন জেনারেট করা যায়। লেক্সিকোগ্রাফিকালি পরবর্তী পারমিউটেশন বলতে বড় পারমিউটেশনকে বোঝায়। উদাহরণস্বরূপ, "ACB"-এর পরবর্তী হবে "BAC"। কিছু ক্ষেত্রে লেক্সিকোগ্রাফিকালি পরবর্তী পারমিউটেশন থাকে না, যেমন "BBB" বা "DCBA"।
সি++-এ আমরা লাইব্রেরি ফাংশন next_permutation() ব্যবহার করে এটি করতে পারি। এটি <algorithm> হেডার ফাইলে উপস্থিত।
উদাহরণ
#include <iostream>
#include <algorithm>
using namespace std;
int 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