একটি ব্যাকট্র্যাক ফাংশন তৈরি করুন যা বর্তমান স্ট্রিং আপডেট করে যদি খোলা বন্ধনী n-এর চেয়ে কম হয় বা বন্ধ বন্ধনী খোলা বন্ধনীর চেয়ে কম হয়। যখন বর্তমান স্ট্রিং এর দৈর্ঘ্য 2*n এর সমান হয়ে যায়, তখন এটি সমন্বয় ফলাফল অ্যারেতে যোগ করুন। এটিকে সহজভাবে ট্র্যাক করা যেতে পারে {} নম্বরটি রেখে। আমরা একটি খোলার বন্ধনী শুরু করতে পারি যদি আমাদের এখনও একটি স্থাপন করা বাকি থাকে। এবং আমরা একটি বন্ধ বন্ধনী শুরু করতে পারি যদি এটি খোলা বন্ধনীর সংখ্যা অতিক্রম না করে।
উদাহরণ
using System; using System.Collections.Generic; using System.Text; using System.Linq; namespace ConsoleApplication{ public class BackTracking{ public void Brackets(){ char[] arr = new char[4]; FindSequence(arr, 0, 2, 0, 0); } private static void FindSequence(char[] arr, int index, int N, int openBracket, int closeBracket){ if (closeBracket == N){ StringBuilder s = new StringBuilder(); for (int i = 0; i < arr.Length; i++){ s.Append(arr[i]); } Console.WriteLine(s); s = null; return; } else{ if (openBracket > closeBracket){ arr[index] = '}'; FindSequence(arr, index + 1, N, openBracket, closeBracket + 1); } if (openBracket < N){ arr[index] = '{'; FindSequence(arr, index + 1, N, openBracket + 1, closeBracket); } } } } class Program{ static void Main(string[] args){ BackTracking b = new BackTracking(); b.Brackets(); } } }
আউটপুট
{}{} {{}}