Or one could just simulate a counting from 0 to (numchars^N)-1 in base
numchars.
.......
code:
void printit(int N,char chars[],int index[]){
    for(int i=0;i<N;i++){
        printf("%c",chars[index[i]]);
    }
    printf("\n");
}
void generate(int numchars,char chars[],int N){
    int index[100]={0};
    int allmax=0;
    int maxdigit=numchars-1;
    printit(N,chars,index);
    while(!allmax){
       // add one;
       index[0]++;
       allmax=0;
       for(int i=0;i<N;i++){
            if(index[i]>=numchars){
                 index[i]=0; index[i+1]++;
            }
            if(i==0&&index[i]==maxdigit){
               allmax=1;
            }

           allmax = (index[i]==maxdigit)?allmax&1:0;

       }
       printit(N,chars,index);
    }
}
int  main(){
 char chars [] ={'p','o'};
 int numchars =sizeof(chars)/sizeof(char);
 int N=3;
 generate(numchars,chars,N);
}

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.
>
>

-- 
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.

Reply via email to