কম্পিউটার টিউটোরিয়াল

C-তে একটি স্ট্রিংয়ের সব পারমিউটেশন প্রিন্ট করা

একটি স্ট্রিং দেওয়া আছে। ব্যাকট্র্যাকিং ব্যবহার করে স্ট্রিংয়ের সব সম্ভাব্য পারমিউটেশন (বিন্যাস) প্রিন্ট করতে হবে।

উদাহরণ

ইনপুট: "xyz"

আউটপুট: xyz, xzy, yxz, yzx, zxy, zyx

পদ্ধতি

  • findPermutations(str, l, r) রিকারসিভ ফাংশন।
  • বেস কেস: l==r হলে স্ট্রিং প্রিন্ট।
  • লুপ i=l থেকে r: swap(str[l], str[i]), রিকারসিভ কল (l+1, r), আবার swap করে ব্যাকট্র্যাক।

C++ প্রোগ্রাম উদাহরণ

#include <iostream>
using namespace std;

void findPermutations(string str, int l, int r) {
    if (l == r) cout << str << " ";
    else {
        for (int i = l; i <= r; i++) {
            swap(str[l], str[i]);
            findPermutations(str, l+1, r);
            swap(str[l], str[i]);
        }
    }
}

int main() {
    string str = "WXYZ";
    int n = str.size();
    findPermutations(str, 0, n-1);
    return 0;
}

আউটপুট

WXYZ WXZY WYXZ WYZX WZYX WZXY XWYZ XWZY XYWZ XYZW XZYW XZWY YXWZ YXZW YWXZ YWZX YZWX YZXW ZXYW ZXWY ZYXW ZYWX ZWYX ZWXY
  1. পাইথনে স্ট্রিংর size r পারমুটেশন বের করার প্রোগ্রাম

  2. রিকার্সন ব্যবহার করে স্ট্রিংয়ের লেক্সিকোগ্রাফিক পারমুটেশন প্রিন্ট করার পাইথন প্রোগ্রাম

  3. রিকার্সন ছাড়া স্ট্রিংয়ের লেক্সিকোগ্রাফিক পারমুটেশন প্রিন্ট করার পাইথন প্রোগ্রাম

  4. দেওয়া স্ট্রিংয়ের সকল পারমিউটেশন প্রিন্ট করার পাইথন প্রোগ্রাম