Even if the number of elements is more than two, it is possible with bitwise operations, but it gets clumsy.
Suppose your alphabet has 4 characters. You can either: - Count from 0 to (1<<4*n)-1 and use four bits to denote the selection of the alphabet. Also, only one bit amongst those four should be set. It is highly inefficient. - Keep n nested loops and inside each loop you iterate from 0 to (1<<4)-1 and use the standard bitwise operations. The con here is that you have to hardcode the number of nested loops. On Fri, Aug 5, 2011 at 2:44 PM, Nitin Nizhawan <nitin.nizha...@gmail.com> wrote: > @Varun I think it can be done using bits, if input character set has only > two elements. Or could u plz explain? > > On Fri, Aug 5, 2011 at 2:29 PM, Varun Jakhoria <varunjakho...@gmail.com> > wrote: >> >> I think it can be done using bitwise ANDing with a mask >> >> On Fri, Aug 5, 2011 at 12:58 PM, Gaurav Menghani >> <gaurav.mengh...@gmail.com> wrote: >> > An Implementation: >> > >> > #include<iostream> >> > #include<string> >> > using namespace std; >> > >> > string alphabet; >> > int maxlen; >> > void backtrack(string s,int l) >> > { >> > if(l==maxlen) { cout<<s<<endl; return; } >> > s.push_back('-'); >> > for(int i=0;i<alphabet.size();i++) >> > { s[l]=alphabet[i]; backtrack(s,l+1); } >> > } >> > >> > int main() >> > { >> > maxlen=3; >> > alphabet="op"; >> > backtrack("",0); >> > return 0; >> > } >> > >> > >> > On Fri, Aug 5, 2011 at 12:42 PM, Kamakshii Aggarwal >> > <kamakshi...@gmail.com> wrote: >> >> @gaurav:i could not understand ur sol.can u explain it again.. >> >> >> >> On Fri, Aug 5, 2011 at 12:32 PM, Gaurav Menghani >> >> <gaurav.mengh...@gmail.com> >> >> wrote: >> >>> >> >>> On Fri, Aug 5, 2011 at 12:20 PM, Kamakshii Aggarwal >> >>> <kamakshi...@gmail.com> wrote: >> >>> > given a set of letters and a length N, produce all possible >> >>> > output.(Not >> >>> > permutation). For example, give the letter (p,o) and length of 3, >> >>> > produce >> >>> > the following output(in any order you want, not just my example >> >>> > order) >> >>> > >> >>> > ppp ppo poo pop opp opo oop ooo >> >>> > >> >>> > another example would be given (a,b) and length 2 >> >>> > >> >>> > answer: ab aa bb ba >> >>> > >> >>> > -- >> >>> > Regards, >> >>> > Kamakshi >> >>> > kamakshi...@gmail.com >> >>> >> >>> This can be done easily by backtracking >> >>> >> >>> void backtrack(string s, int l) >> >>> { >> >>> if(l == maxlen) { cout<<s<<endl; return; } >> >>> >> >>> s.push_back('-'); >> >>> for(int i=0;i<alphabet.size();i++) >> >>> { >> >>> s[l]=alphabet[i]; >> >>> backtrack(s,l+1); >> >>> } >> >>> } >> >>> >> >>> -- >> >>> Gaurav Menghani >> >>> >> >>> -- >> >>> 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. >> >>> >> >> >> >> >> >> >> >> -- >> >> Regards, >> >> Kamakshi >> >> kamakshi...@gmail.com >> >> >> >> -- >> >> 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. >> >> >> > >> > >> > >> > -- >> > Gaurav Menghani >> > >> > -- >> > 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. >> > >> > >> >> >> >> -- >> Varun Jakhoria >> ...it's only about 0's & 1's >> >> -- >> 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. > -- Gaurav Menghani -- 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.