为什么是这样就行了呢,因为题目已经说了“ 输入保证填词游戏至少有一组答案 ”,这句话的意思就是输入的每行单词在原来的棋盘里面都肯定能找到,于是我们就只需要管输入的各个字母的总数就行了。
我觉得这个题目很坑爹,因为我很难搞明白题目到底要表达什么。
本人已AC代码如下
#include<stdio.h>
int main(){
int a,b,c;
scanf("%d%d%d",&a,&b,&c);
char **matrix=new char*[a];
char **matrix2=new char*[c];
int *biaozhi=new int[26];
int *biaozhi2=new int[26];
for(int i=0;i<26;i++){
biaozhi[i]=0;
biaozhi2[i]=0;
}
for(int i=0;i<a;i++){
matrix[i]=new char[b+1];
scanf("%s",matrix[i]);
for(int j=0;j<b;j++){
int d=(int)(matrix[i][j]-'A');
biaozhi[d]+=1;
}
}
for(int i=0;i<c;i++){
matrix2[i]=new char[21];
scanf("%s",matrix2[i]);
int j=0;
while(matrix2[i][j]!='\0'){
int d=(int)(matrix2[i][j]-'A');
biaozhi2[d]+=1;
j++;
}
}
for(int i=0;i<26;i++){
int d=biaozhi[i]-=biaozhi2[i];
for(int j=0;j<d;j++){
printf("%c",(char)('A'+i));
}
}
return 0;
}