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

C# ব্যবহার করে ব্যাকট্র্যাকিংয়ের মাধ্যমে স্ট্রিং-এর সব পারমিউটেশন খুঁজে বের করার পদ্ধতি


প্রথম পজিশনে থাকা ক্যারেক্টার খুঁজে বের করুন এবং বাকি ক্যারেক্টারগুলো প্রথম ক্যারেক্টারসহ সোয়াপ করুন। যেমন ABC-এ, প্রথম ইটারেশনে তিনটি স্ট্রিং তৈরি হয়: ABC, BAC, এবং CBA - A-tকে A, B এবং C-এর সাথে সোয়াপ করে। বাকি ক্যারেক্টারের জন্য এই ধাপটি পুনরাবৃত্তি করুন যেমন দ্বিতীয় ক্যারেক্টার B ফিক্স করে ইত্যাদি। আবার সোয়াপ করে আগের পজিশনে ফিরে যান। ABC থেকে, B ফিক্স করে আবার ABC তৈরি হয়, এবং আমরা ব্যাকট্র্যাক করে আগের পজিশনে আসি এবং B-tকে C-এর সাথে সোয়াপ করি। এভাবে আমরা ABC এবং ACB পাই।

উদাহরণ

using System;

namespace ConsoleApplication
{
    public class BackTracking
    {
        public void StringPermutation(string word, int start, int end)
        {
            if (start == end)
            {
                Console.WriteLine(word);
            }
            else
            {
                for (int i = start; i <= end; i++)
                {
                    Swap(ref word, start, i);
                    StringPermutation(word, start + 1, end);
                    Swap(ref word, start, i);
                }
            }
        }

        private void Swap(ref string word, int start, int end)
        {
            char[] arr = word.ToCharArray();
            char temp = arr[start];
            arr[start] = arr[end];
            arr[end] = temp;
            word = new string(arr);
        }
    }

    class Program
    {
        static void Main(string[] args)
        {
            BackTracking b = new BackTracking();
            b.StringPermutation("ABC", 0, 2);
        }
    }
}

আউটপুট

ABC ACB BAC BCA CBA CAB
  1. C#-এ স্ট্রিংয়ের দৈর্ঘ্য (Length) ক্যালকুলেট করা

  2. ডিকশনারি ব্যবহার করে স্ট্রিংয়ে প্রথম রিপিটেড ওয়ার্ড খুঁজে বের করা

  3. পাইথন রেজেক্স ব্যবহার করে স্ট্রিং থেকে ‘1(0+)1’ প্যাটার্ন খুঁজে বের করা

  4. পাইথনে রেগুলার এক্সপ্রেশন ব্যবহার করে স্ট্রিং থেকে সব সংখ্যা বের করা