输出字符串所有组合(含有重复的字符)及输出其所有子串(含有重复的字符)
来源:互联网 发布:淘宝买家秀模特兼职 编辑:程序博客网 时间:2024/06/06 08:48
//输出字符串所有组合
#include<iostream>
using namespace std;void zuhe(char *str,char *begin,int n)
{
if(str ==NULL || begin == NULL)//如果为空直接返回
return;
if(*begin == '\0')//每当bdgin为0时打印字符串
{
for(int i = 0;i < n;i++)
{
cout << str[i] << " ";
}
cout << endl;
}
for(char *pc = begin;*pc != '\0';pc++)
{
if(strchr(begin,*pc) == pc)//判断当前将要与begin交换的字符是不是第一次出现,如果是则交换,如果不是说明在begin的位置已经有过此字符,不在交换
{
char temp = *begin;
*begin = *pc;
*pc = temp;
zuhe(str,begin+1,n);//交换完,固定组begin,交换下一个位置
temp = *begin;//还回去
*begin = *pc;
*pc = temp;
}
}
}
int main()
{
char a[10];
int i = 0;
while(cin.get(a[i]) && a[i] != '\n')
i++;
a[i] = '\0';
zuhe(a,a,i);
return 0;
}
//输出字符串所有子串
#include<iostream>
#include<vector>
using namespace std;
void zichuan(char *str,vector<char>& result)
{
if(str ==NULL)
return;
if(*str =='\0')
{
for(vector<char>::iterator p = result.begin();p != result.end();p++)
{
cout << *p << " ";
}
cout << endl;
return;
}
result.push_back(*str);//递归实现
zichuan(str+1,result);
result.pop_back();
zichuan(str+1,result);
}
int main()
{
char a[10];
int i = 0;
while(cin.get(a[i]) && a[i] != '\n')
i++;
a[i] = '\0';
for(int j = 0;j < i;j++)//将字符串中重复的字符干掉后在排序
{
if(strchr(a,a[j]) == &a[j])
continue;
else
{
while(strchr(a,a[j]) != &a[j])
{
for(int k = j+1;k <= i;k++)
{
a[k-1] = a[k];
}
i--;
}
}
}
vector<char> b;
zichuan(a,b);
return 0;
}
0 0
- 输出字符串所有组合(含有重复的字符)及输出其所有子串(含有重复的字符)
- 输出所有的字符组合(可重复)
- 亚马逊面试:输出字符串中所有最长的无重复字符的子字符串
- 输出一个字符串中含有所规定的字符子串的数量
- 输出一个字符串的所有自字符串(不重复)
- 给一个字符串(包含重复字符),打印它的所有可能的组合。
- 输出该字符串中字符的所有组合
- 输出该字符串中字符的所有组合
- 读取一个字符串,输出它里面字符的所有组合
- 输出一个字符串所有排列。注意有重复字符
- php检测字符串是否含有重复或递增的字符
- 输出字符串中的所有重复子
- 已知一个有重复字符的字符串,打印其所有不同的字符排列
- 输出含有某个子字符串的字符串
- 找出一个字符数组(元素不重复)所有可能字符的组合
- 递归问题之一:给定一字符串,输出字符串中所有字符子串的各种组合形式,长度为一个字符到字符串的长度,忽略排序
- 给定字符串str1和str2,求str1中子串含有str2所有字符的最小子串长度
- 找出字符串中所有重复的字符及其重复次数
- 带干扰的验证码
- 使Eclipse下支持编写HTML/JS/CSS/JSP页面的自动提示
- Min Stack
- 按钮的单选框
- 批量处理SQL语句
- 输出字符串所有组合(含有重复的字符)及输出其所有子串(含有重复的字符)
- 数据挖掘150道试题 测测你的专业能力过关吗?
- AnimatorSet的使用
- 路由及路由器工作原理深入解析1:概述
- android关于点九图的制作
- 九度oj 1076
- POJ 2488:A Knight's Journey 深搜入门之走马观花
- HDU 1166 敌兵布阵 线段树 部分和 点更新
- [转]含有汉字,数字,字母,下划线的正则表达式