您的位置:首页 > 其它

字符串的全组合非递归实现

2010-12-11 16:03 197 查看
#include<iostream>

#include<string>

#include<vector>

#include<algorithm>

using namespace std;

int main()

{

while(1)

{

string str;

cin>>str;

vector<string> current;

int size=str.size()-1;

while(1)

{

int last_size=current.size();

for(int a=0;a!=last_size;++a) //遍历上一次的结果获取,添加当之前字节

current.push_back(str[size]+current[a]);

current.push_back(string(1,str[size]));//只有一个的情形也输入

--size;

if(size==-1)

break;

}

for(vector<string>::iterator iter=current.begin();iter!=current.end();++iter)

cout<<*iter<<endl;

}



return 0;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: