字符串的全组合非递归实现
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;
}
#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;
}
相关文章推荐
- 字符串的组合 位图和递归分别实现
- 打印给定一字符串的所有字母组合——递归实现
- 字符串数组元素排列与组合的Java递归实现
- 字符串全排列与全组合的递归实现-Java版
- 字符串的组合问题 递归和非递归实现
- 剑指Offer28字符串的排列(递归和非递归实现)扩展有重复元素的排列,字符串的组合种类
- 递归实现字符串反转
- 编写一个函数reverse_string(char * string)(递归实现) 实现:将参数字符串中的字符反向排列。
- JS实现生成由字母与数字组合的随机字符串功能详解
- 两两组合算法-递归实现方法
- 使用C语言递归与非递归实现字符串反转函数char *reverse(char *str)的方法
- 递归实现字符串反向
- 用递归实现字符串的逆序
- 用递归实现 整数数字转换为对应的 字符串
- [算法] 输出 字符串的全部子组合 [dfs - 递归神技]
- reverse_string(char *string)递归实现字符串翻转 和对“++”操作的一些分析
- 用递归的思想写编写一个函数reverse_string(char * string)实现字符串反向输出和反向排列
- 用递归实现排列组合
- 编写一个函数reverse_string(char * string)(递归实现)实现:将参数字符串中的字符反向排列。要求:不能使用C函数库中的字符串操作函数。
- Java 非递归实现的排列组合中的平均分组问题