当前位置: 代码迷 >> 综合 >> 串中取三个不同字符 蓝桥杯 解题报告
  详细解决方案

串中取三个不同字符 蓝桥杯 解题报告

热度:57   发布时间:2023-10-18 05:10:53.0

Problem Description

从标准输入读入一个由字符构成的串(不大于30个字符)。

从该串中取出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\n",ch[i],ch[j],ch[n]);}}}}return 0;
}


  相关解决方案