#include<iostream>
#include<vector>
using namespace std;
//汉诺塔
void Hano(int n,char A,char B,char C)
{
if(n==1)
{
cout<<A<<"---->"<<C<<endl;
}
else
{
Hano(n-1,A,C,B);
cout<<A<<"---->"<<C<<endl;
Hano(n-1,B,A,C);
}
}
int count=0;
//括号匹配
void Bracket(char *p,int index,int leftBracket,int rightBracket,int maxIndex)
{
if(rightBracket<0 || leftBracket<0)
return;
if(index>maxIndex)
{
for(int t=0;t<=maxIndex;t++)
cout<<" "<<p[t];
cout<<endl;
count++;
return;
}
if(leftBracket==rightBracket)
{
p[index]='(';
Bracket(p,index+1,leftBracket-1,rightBracket,maxIndex);
}
else if(leftBracket<rightBracket)
{
p[index]='(';
Bracket(p,index+1,leftBracket-1,rightBracket,maxIndex);
p[index]=')';
Bracket(p,index+1,leftBracket,rightBracket-1,maxIndex);
}
}
int main()
{
// Hano(5,'a','b','c');
char *p=new char[12];
Bracket(p,0,6,6,11);
cout<<"count"<<count<<endl;
return 0;
}
一些简单的算法
最新推荐文章于 2022-02-08 20:59:47 发布