记录编号 |
472794 |
评测结果 |
AAAAAAAAAAA |
题目名称 |
文章过滤器 |
最终得分 |
100 |
用户昵称 |
TheWait |
是否通过 |
通过 |
代码语言 |
C++ |
运行时间 |
0.018 s |
提交时间 |
2017-11-07 21:03:17 |
内存使用 |
0.39 MiB |
显示代码纯文本
#include <cstdio>
bool match[256][256];
char ban[60][30], s[20010];
bool bad[20010];
int main()
{
freopen("fliter.in", "r", stdin);
freopen("fliter.out", "w", stdout);
for(int i = 0; i != 26; ++i)
match['a' + i]['a' + i] =
match['a' + i]['A' + i] =
match['A' + i]['a' + i] =
match['A' + i]['A' + i] = 1;
int n; scanf("%d\n", &n);
for(int i = 0; i != n; ++i) gets(ban[i]);
gets(s);
for(int k = 0; k != n; ++k)
{
char *t = ban[k];
for(int i = 0; s[i]; ++i)
{
bool fail = 0;
for(int j = 0; t[j]; ++j) if(!match[(int) s[i + j]][(int) t[j]]) fail = 1;
if(fail) continue;
for(int j = 0; t[j]; ++j) bad[i + j] = 1;
}
}
for(int i = 0; s[i]; ++i) if(bad[i]) s[i] = '*';
puts(s);
}