全排列
2015-08-06 21:27
281 查看
#include<stdio.h>
void premutation(int pos,int n);
char c[100];
char used[200];
char pre[100];
int main()
{
int n;
scanf("%d",&n);
getchar();
gets(c);
premutation(0,n);
return 0;
}
void premutation(int pos,int n)
{
if(pos == n)
{
for(int i=0;i<n;i++)
printf("%c ",pre[i]);
printf("\n");
return ;
}
for(int i=0;i<n;i++)
{
if(used[i]==0)
{
pre[pos]=c[i];
used[i]=1;
premutation(pos+1,n);
used[i]=0;
}
}
return ;
}
#include<stdio.h> //全排列去重
#include<string.h>
void premutation(int pos,int n);
char c[100];
int used[200];
char pre[100];
int main()
{
int n;
scanf("%d",&n);
getchar();
gets(c);
for(int i=0;i<strlen(c);++i)
used[c[i]]++; //统计相同字符的个数
premutation(0,n);
return 0;
}
void premutation(int pos,int n)
{
if(pos == n)
{
for(int i=0;i<=n;i++)
printf("%c ",pre[i]); //输出全排列后的
printf("\n");
return ;
}
for(int i=65;i<=122;i++)
{
if(used[i]>0)
{
pre[pos]=i;
used[i]--;
premutation(pos+1,n);
used[i]++;
}
}
return ;
}
void premutation(int pos,int n);
char c[100];
char used[200];
char pre[100];
int main()
{
int n;
scanf("%d",&n);
getchar();
gets(c);
premutation(0,n);
return 0;
}
void premutation(int pos,int n)
{
if(pos == n)
{
for(int i=0;i<n;i++)
printf("%c ",pre[i]);
printf("\n");
return ;
}
for(int i=0;i<n;i++)
{
if(used[i]==0)
{
pre[pos]=c[i];
used[i]=1;
premutation(pos+1,n);
used[i]=0;
}
}
return ;
}
#include<stdio.h> //全排列去重
#include<string.h>
void premutation(int pos,int n);
char c[100];
int used[200];
char pre[100];
int main()
{
int n;
scanf("%d",&n);
getchar();
gets(c);
for(int i=0;i<strlen(c);++i)
used[c[i]]++; //统计相同字符的个数
premutation(0,n);
return 0;
}
void premutation(int pos,int n)
{
if(pos == n)
{
for(int i=0;i<=n;i++)
printf("%c ",pre[i]); //输出全排列后的
printf("\n");
return ;
}
for(int i=65;i<=122;i++)
{
if(used[i]>0)
{
pre[pos]=i;
used[i]--;
premutation(pos+1,n);
used[i]++;
}
}
return ;
}
相关文章推荐
- UE4 iOS设备的兼容性
- [译]Front-end-Developer-Interview-Questions
- JDK动态代理机制
- java--面向对象(3)--黑马程序员
- Ubuntu Server 14.04 & Apache2.4 虚拟主机、模块重写、隐藏入口文件配置
- Power oj 1782
- 九度oj 1335
- mysql 高可用 1
- C - Valera and Contest题解
- apk文件反编译工具apktool的下载,安装,使用
- [Learning Linux For Fun ] unit 1 1.1
- 网页制作之JavaScript部分3--事件及事件传输方式(函数调用 练习题 )重要---持续更新中
- uva 10670 Work Reduction(贪心)
- 对于HTML的一些不熟悉的及要点掌握
- Web页面优化
- js学习三:操作属性的方法
- Container With Most Water
- 继承BaseAdapter实现Filterable的adapter类完整示例
- 智慧环境
- 网页制作之JavaScript部分 2 - DOM操作