四对括号可以有多少种匹配排列方式?比如两对括号可以有两种:()()和(())

原创 2012年03月30日 19:31:27
#include<iostream>
#include<string>
using namespace std;

int howMany1s(unsigned int num)
{
    int count=0;
    for(int i=0;i<8;i++)
    {
        if((num&0x1)==1)
           count++;
        num=num>>1;
    }
    return count;
}

bool check(unsigned int num)
{
    int flag=0;
    if(num<0||num>255)
       return false;
    unsigned int pointer=0x80;
    for(int i=0;i<8;i++)
    {
        if((pointer&num)!=0)
           flag++;
        else
           flag--;
        if(flag<0)
           return false;
        pointer=pointer>>1;
    }
    if(flag==0)
       return true;
    return false;
}

void printCombo(unsigned int num)
{
    unsigned int pointer=0x80;
    for(int i=0;i<8;i++)
    {
        if((pointer&num)!=0)
           cout<<"(";
        else
           cout<<")";
        pointer=pointer>>1;
    }
    cout<<endl;
}

int main()
{
    int count=0;
    for(unsigned int i=0;i<256;i++)
    {
        if(howMany1s(i)!=4)
            continue;
        else
        {
            if(check(i))
            {
                count++;
                printCombo(i);
            }
        }
    }
    cout<<"In total:"<<count<<endl;
}

相关文章推荐

四对括号可以有多少种匹配排列方式?

46.搜狐(运算): 四对括号可以有多少种匹配排列方式?比如两对括号可以有两种:()()和(()) #include #include #include using namespace st...

n对括号可以有多少种匹配排列方式(算法面试题)

n对括号可以有多少种匹配排列方式?比如两对括号可以有两种:()()和(())...

n对括号有多少种匹配排列方式

n对括号有多少种匹配排列方式?比如一对括号有一种:();两对括号可以有两种:()()和(()) 相关知识: 卡特兰数 #include using namespace std; //下述算法与没...

算法习题46:四对括号可以有多少种匹配排列方式?比如两对括号可以有两种:()()和(())

来自:http://bbs.csdn.net/topics/350118968 搜狐: 四对括号可以有多少种匹配排列方式?比如两对括号可以有两种:()()和(()) ------------...
  • ylf13
  • ylf13
  • 2013年11月06日 13:23
  • 1183

打印所有括号匹配排列方式

对于2对左右括号,其排列方式有: ( ( ) ) ( ) ( ) 4对括号的排列方式有: ( ( ( ( ) ) ) ) ( ( ( ) ( ) ) ) ( ( ( ) ) ( ) ) ...
  • realxie
  • realxie
  • 2012年10月02日 17:10
  • 4878

n对括号的匹配方式以及Catalan数通项公式的推导

4对括号有多少种可能的合法匹配方式?n对括号呢? 此题是卡特兰数的一个通常应用,相似的还有出栈顺序等。关于卡特兰数的具体内容,请参阅百度百科或Wiki. http://baike.ba...

括号 匹配 排列问题

问题:n对括号可以有多少种匹配排列方式? 比如两对括号可以有两种:()()和(()) 思路: 问题可转化为:在一个string中包含两个字符:'('和')',他们出现的次数都为n,并且任何时候'...

c++括号匹配

  • 2014年12月05日 15:26
  • 168KB
  • 下载

括号匹配加表达式

  • 2014年11月16日 21:43
  • 2KB
  • 下载

数据结构之---C语言实现括号匹配(栈实现)

数据结构之---C语言实现括号匹配(栈实现)
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:四对括号可以有多少种匹配排列方式?比如两对括号可以有两种:()()和(())
举报原因:
原因补充:

(最多只允许输入30个字)