चरित्र को पहली स्थिति में ढूंढें और शेष चरित्र को पहले वर्ण के साथ बदलें। एबीसी की तरह, पहले पुनरावृत्ति में तीन तार बनते हैं:एबीसी, बीएसी, और सीबीए क्रमशः ए, बी और सी के साथ ए को स्वैप करके। शेष वर्णों के लिए चरण दोहराएं जैसे कि दूसरा वर्ण B ठीक करना इत्यादि। पिछली स्थिति में वापस जाने के लिए अब फिर से स्वैप करें। एबीसी से, हमने बी को फिर से ठीक करके एबीसी का गठन किया, और हम पिछली स्थिति में वापस आ गए और बी को सी के साथ स्वैप कर दिया। तो, अब हमें एबीसी और एसीबी मिल गया है।
उदाहरण
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