题解 | #查找兄弟单词#
查找兄弟单词
https://www.nowcoder.com/practice/03ba8aeeef73400ca7a37a5f3370fe68
#include <stdio.h> #include <string.h> char *px(char *wd) { char lskj[11]; char *pwd=wd; sscanf(wd,"%s",lskj); int len=strlen(lskj); for(int i=0;i<len;i++) { for(int j=0;j<len-i-1;j++) { if(lskj[j]>lskj[j+1]) { char tmp=0; tmp=lskj[j]; lskj[j]=lskj[j+1]; lskj[j+1]=tmp; } } } sscanf(lskj,"%s",wd); return pwd; } int main() { int n=0; scanf("%d",&n); char str[1001][11]={0}; for(int i=0;i<n;i++) { scanf("%s",str[i]); } char x[11]={0}; scanf("%s",x); int k=0; scanf("%d",&k); char map[1001][11]={0}; int pos=0; for(int i=0;i<n;i++) { if(strcmp(x,str[i])!=0&&(strlen(x)==strlen(str[i]))) { char xsz[11]={0}; char strsz[11]={0}; strcpy(xsz,x); strcpy(strsz,str[i]); px(xsz); px(strsz); if(strcmp(xsz,strsz)==0) { strcpy(map[pos],str[i]); pos++; } memset(xsz,0,11*sizeof(char)); memset(strsz,0,11*sizeof(char)); } } for(int i=0;i<pos;i++) { for(int j=0;j<pos-i-1;j++) { if(strcmp(map[j],map[j+1])>0) { char tmp1[15]; strcpy(tmp1,map[j]); strcpy(map[j],map[j+1]); strcpy(map[j+1],tmp1); } } } printf("%d\n%s",pos,map[k-1]); }