void printPerm(char *s,int i ,int len){ if( i == len){ printf("%s\n",s); return ; } int j ; char t ; char h[26] ; memset(h,'0',26); for(j = i ; j < len ; j++ ){ if(h[s[j]-'a'] == '0'){ h[s[j]-'a'] = '1' ; t = s[i] ; s[i] = s[j] ; s[j] = t ; printPerm(s,i+1,len); t = s[i] ; s[i] = s[j] ; s[j] = t ; } } }
On Fri, Jul 29, 2011 at 11:37 AM, snehi jain <snehijai...@gmail.com> wrote: > i did a dry run on this code and didnt find the significance of mk array > ... so i did remove it from the code .. > and the code works fine .. > i more thing ... the code repeats same palindromes as in incase of ABA baa > is coming twice.. > > correct me if i am wrong ... > > > On Fri, Jul 29, 2011 at 10:47 AM, Arun Vishwanathan < > aaron.nar...@gmail.com> wrote: > >> @amit:i am not clear about the code.Maybe could you take your example >> string aabc and explain a few steps that happen from your code??.The array >> mk is locally created for each function call and so I do not get how it >> keeps track of elements tried cos each time it is a new array. >> >> >> On Fri, Jul 29, 2011 at 3:54 AM, amit karmakar <amit.codenam...@gmail.com >> > wrote: >> >>> What my recursive solution does is that, >>> For all elements that can be used at position *k*, fix that element at >>> position *k* and then permute the rest of the elements. >>> So if are two same elements which can be used at position *k* we must >>> choose only one of it to avoid repeated permutations. >>> >>> Array mk[256] keeps a track of the elements that have already been >>> tried. >>> >>> >> Does there exist any better solution also, or this backtracking >>> solution is the best? >>> You should have a look at this: >>> >>> http://en.wikipedia.org/wiki/Permutation#Algorithms_to_generate_permutations >>> >>> On Jul 29, 12:34 am, Nitish Garg <nitishgarg1...@gmail.com> wrote: >>> > Can you please explain what is the use of the array mk[256], how this >>> array >>> > solves the problem of repeated characters. >>> > Does there exist any better solution also, or this backtracking >>> solution is >>> > the best? >>> >>> -- >>> You received this message because you are subscribed to the Google Groups >>> "Algorithm Geeks" group. >>> To post to this group, send email to algogeeks@googlegroups.com. >>> To unsubscribe from this group, send email to >>> algogeeks+unsubscr...@googlegroups.com. >>> For more options, visit this group at >>> http://groups.google.com/group/algogeeks?hl=en. >>> >>> >> >> >> -- >> You received this message because you are subscribed to the Google Groups >> "Algorithm Geeks" group. >> To post to this group, send email to algogeeks@googlegroups.com. >> To unsubscribe from this group, send email to >> algogeeks+unsubscr...@googlegroups.com. >> For more options, visit this group at >> http://groups.google.com/group/algogeeks?hl=en. >> > > -- > You received this message because you are subscribed to the Google Groups > "Algorithm Geeks" group. > To post to this group, send email to algogeeks@googlegroups.com. > To unsubscribe from this group, send email to > algogeeks+unsubscr...@googlegroups.com. > For more options, visit this group at > http://groups.google.com/group/algogeeks?hl=en. > -- *With Regards :* Ravinder Kumar B.Tech Final Year Computer Science and Engineering MNNIT Allahabad -- You received this message because you are subscribed to the Google Groups "Algorithm Geeks" group. To post to this group, send email to algogeeks@googlegroups.com. To unsubscribe from this group, send email to algogeeks+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/algogeeks?hl=en.