Problem Description
从标准输入读入一个由字符构成的串(不大于30个字符)。
从该串中取出3个不重复的字符,求所有的取法。
取出的字符,要求按字符升序排列成一个串。
不同的取法输出顺序可以不考虑。
从该串中取出3个不重复的字符,求所有的取法。
取出的字符,要求按字符升序排列成一个串。
不同的取法输出顺序可以不考虑。
Input
从标准输入读入一个由字符构成的串(不大于30个字符)。
Output
从该串中取出3个不重复的字符,求所有的取法。
Sample Input
abc abcaa abcd
Sample Output
abc abc abc abd acd bcd
代码如下:
#include<stdio.h> #include<string.h> #include<ctype.h> int main () { char str[40],ch[40]; int vis[1000]; int i,j,n,m; while(~scanf("%s",str)){ int len=strlen(str); m=0; memset(vis,0,sizeof(vis)); for(i=0;i<len;i++){ if(vis[str[i]]==0){ ch[m++]=str[i]; vis[str[i]-0]=1; } } for(i=0;i<m-2;i++){ for(j=i+1;j<m-1;j++){ for(n=j+1;n<m;n++){ printf("%c%c%c ",ch[i],ch[j],ch[n]); } } } } return 0; }