প্রথম অবস্থানে অক্ষরটি খুঁজুন এবং প্রথম অক্ষরের সাথে বাকি অক্ষর অদলবদল করুন। ABC এর মতো, প্রথম পুনরাবৃত্তিতে তিনটি স্ট্রিং গঠিত হয়:ABC, BAC এবং CBA যথাক্রমে A, B এবং C এর সাথে অদলবদল করে। বাকি অক্ষরের জন্য ধাপ পুনরাবৃত্তি করুন যেমন দ্বিতীয় অক্ষর B ঠিক করা ইত্যাদি। আগের অবস্থানে ফিরে যেতে আবার Nowswap. ABC থেকে, আমরা আবার B ঠিক করে ABC গঠন করেছি, এবং আমরা আগের অবস্থানে ফিরে যাই এবং C এর সাথে B অদলবদল করি। তাই, এখন আমরা 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