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

C# ব্যবহার করে ব্যাকট্র্যাকিংয়ের মাধ্যমে মোবাইল কিপ্যাডের সব সংমিশ্রণ খুঁজে বের করার পদ্ধতি


সমস্যাটিকে ছোট এবং সহজ "সাবপ্রব্লেম"-এ ভাগ করা যায়, যেগুলো আবার আরও ছোট সাবপ্রব্লেমে ভাগ করা যায়। আমরা প্রতিটি ডিজিট একে একে নিয়ে সেটি থেকে পৌঁছানো যায় এমন সব n-ডিজিট গণনা করি, প্রতিটি ডিজিট থেকে পৌঁছানো যায় এমন ডিজিটের ম্যাপিং সংরক্ষণের জন্য একটি ম্যাপ ব্যবহার করি। যখন ডিজিট n-ডিজিট হয়, তখন কাউন্ট আপডেট করি।

উদাহরণ

using System;
using System.Collections.Generic;

namespace ConsoleApplication
{
    public class BackTracking
    {
        private string GetKeyPadValueBasedOnInput(string digit)
        {
            Dictionary<string, string> keypad = new Dictionary<string, string>();
            keypad.Add("2", "abc");
            keypad.Add("3", "def");
            keypad.Add("4", "ghi");
            keypad.Add("5", "jkl");
            keypad.Add("6", "mno");
            keypad.Add("7", "pqrs");
            keypad.Add("8", "tuv");
            keypad.Add("9", "wxyz");
            return keypad.GetValueOrDefault(digit);
        }

        public void FindSequence(string currentList, string digits, List<string> output)
        {
            if (digits.Length == 0)
            {
                output.Add(currentList);
                return;
            }
            else
            {
                string digit = digits.Substring(0, 1);
                string letters = GetKeyPadValueBasedOnInput(digit);
                for (int i = 0; i < letters.Length; i++)
                {
                    char letter = GetCharFromString(letters, i);
                    FindSequence(currentList + letter, digits.Substring(1), output);
                }
            }
        }

        private char GetCharFromString(string letters, int value)
        {
            char[] charArr = letters.ToCharArray();
            return charArr[value];
        }
    }

    class Program
    {
        static void Main(string[] args)
        {
            BackTracking b = new BackTracking();
            List<string> output = new List<string>();
            b.FindSequence("", "34", output);
            foreach (var item in output)
            {
                Console.WriteLine(item);
            }
        }
    }
}

আউটপুট

dg dh di eg eh ei fg fh fi
  1. OpenCV-এ C++ ব্যবহার করে FPS মান পাওয়া

  2. OpenCV-এ C++ ব্যবহার করে নির্দিষ্ট পিক্সেলের মান পাওয়ার পদ্ধতি

  3. Tkinter-এ বাটন মান এন্ট্রি উইজেটে পাওয়ার পদ্ধতি

  4. রেডিস HVALS ব্যবহার করে সব হ্যাশ মান রিট্রিভ করুন