设为首页 加入收藏

TOP

找出字符串的组合
2013-09-26 19:38:51 来源: 作者: 【 】 浏览:78
Tags:找出 字符串 组合

  比如:“abc”字符串的组合为:a,b,c,ab,ac,bc,abc。

  这里我用两种方法实现:

  位操作:

  #include<iostream>

  #include<vector>

  using namespace std;

  //位操作算法

  void main()

  {

  char* data="abcd";

  int length=strlen(data);

  int last=(1<<length)-1;

  cout<<last<<endl;

  int i;

  for(i=1;i<=last;i++)

  {

  int currentIndex=length-1;

  while(currentIndex>=0)

  {

  if(i&(1<<currentIndex))

  {

  cout<<data[length-currentIndex-1];

  }

  --currentIndex;

  }

  cout<<endl;

  }

  }

  递归操作:

  void algorithm(char* data,int num,vector<char>& result)

  {

  if(!num)

  {

  vector<char>::iterator it=result.begin();

  for(it;it!=result.end();++it)

  {

  cout<<*it;

  }

  cout<<endl;

  return;

  }

  if(*data=='\0')

  return;

  result.push_back(*data);

  algorithm(data+1,num-1,result);

  result.pop_back();

  algorithm(data+1,num,result);

  }

  void main()

  {

  char* data="abcd";

  int length=strlen(data);

  vector<char> result;

  int i;

  for(i=1;i<=length;i++)

  {

  algorithm(data,i,result);

  }

  }

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇?????????? 下一篇在VC++中建立自定义数据库类

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: