百练2801解题报告---填词

这题其实就是把输入的棋盘放到一个二维数组,然后统计出每个字母出现的次数,然后再把要寻找的单词放入一个二维数组,再统计要寻找的单词中每个字母出现的次数,然后求出剩下的字母,再按字母顺序输出。


为什么是这样就行了呢,因为题目已经说了“ 输入保证填词游戏至少有一组答案  ”,这句话的意思就是输入的每行单词在原来的棋盘里面都肯定能找到,于是我们就只需要管输入的各个字母的总数就行了。


我觉得这个题目很坑爹,因为我很难搞明白题目到底要表达什么。


本人已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;
}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值