题目链接
解题思路
思路比较简单,ans用来标记第二行字符串中出现的值,然后遍历第一行,只要在第二行中出现了,就不要打印!
注意
1、PAT不能使用gets读取整行到char*,因此要使用fgets(str,maxn,stdin);
2、题目中给出的范围至少要再加个10,不然可能题目就会坑人!!!比如说这个题目,说好是10000结果报错,最后用10002就可以完全通过!呕!!
代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
| #include <cstdio> #include <cstring> const int maxn=10002; int ans[128]; char s1[maxn]; char s2[maxn]; int main(){ fgets(s1,maxn,stdin); fgets(s2,maxn,stdin); int l1=strlen(s1); int l2=strlen(s2); memset(ans,0,sizeof(ans)); for(int i=0;i<l2;i++){ ans[s2[i]]++; }
for(int i=0;i<l1;i++){ if(ans[s1[i]]==0){ printf("%c",s1[i]); } }
return 0; }
|