@jitendra

#include<iostream>
using namespace std;
void parens(int pairs)
{
    int i, j, s, n = 2*(pairs - 1);

    for (i = 0; i < 1 << n; i++) {
        for (s = 1, j = 0; (j < n) && (s >= 0) && (s <= pairs); j++)
            s += ((i >> j) & 1) ? 1 : -1;
        if ((j != n) || (s != 1))
            continue;
        cout<<"(";
        for (j = 0; j < n; j++)
            ((i >> j) & 1) ? putchar('(') : putchar(')');
        cout<<")"<<endl;
    }
}
int main()
{
    parens(3);
    cin.sync();
    cin.get();
    return 0;
}


On Thu, Jun 3, 2010 at 1:45 PM, Jitendra Kushwaha
<jitendra.th...@gmail.com>wrote:

> The question is that you have to print all the valid permutations of
> the given number of brackets
> for example for input 3 we have the output
>
> 1 ((()))
> 2 (()())
> 3 (())()
> 4 ()(())
> 5 ()()()
>
> total five valid permutation
>
> this can be solved in O( 2^(2n) ) where n is number of brackets .
> Algo will be like this
> 1. Try '(' and ')' in every position and print the correct
> permutation.Neglect all other permutation
>
> As catalon number is far less then exponential growth ,can anybody
> suggest some better algorithm
>
> --
> You received this message because you are subscribed to the Google Groups
> "Algorithm Geeks" group.
> To post to this group, send email to algoge...@googlegroups.com.
> To unsubscribe from this group, send email to
> algogeeks+unsubscr...@googlegroups.com<algogeeks%2bunsubscr...@googlegroups.com>
> .
> For more options, visit this group at
> http://groups.google.com/group/algogeeks?hl=en.
>
>


-- 
yezhu malai vaasa venkataramana Govinda Govinda

-- 
You received this message because you are subscribed to the Google Groups 
"Algorithm Geeks" group.
To post to this group, send email to algoge...@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