#digitalarts1. [digitalarts_1]C-Filter
[digitalarts_1]C-Filter
问题
高橋君对安全性很感兴趣,他是一名想要就职于Digital Arts株式会社的年轻人。
为了在面试中展示自己,他计划利用他擅长的编程知识来制作过滤软件"C-Filter"。
"C-Filter"是一个软件,它会将给定的字符串中与预先注册的"NG词"匹配的字符串替换为相同数量的*
并输出。这个替换字符串的过程称为过滤。
"NG词"由小写英文字母和*
组成。*
与所有的小写英文字母都匹配。
例如,myonmyon
与NG词myo*myon
匹配。
但是,NG词是以单词为单位应用的,所以myo myon
与NG词myo*myon
不匹配。
另外,NG词必须与某个单词完全匹配。
例如,abcde
不与NG词abc
或bcd
或cde
匹配。
给定字符串和NG词,求C-Filter输出的字符串。
输入
输入从标准输入中获取,其格式如下:
:
:
-
输入共有行。
-
第一行为字符串,长度为1到1000之间。
- 是由以半角空格为分隔符连接起来的目标过滤字符串。
-
第二行为整数,表示NG词的个数。
-
第三行到第行为NG词,表示NG词的字符。
- 字符串由小写英文字母和
*
组成。 - 字符串的长度为1到20之间。
- 字符串中的
*
,除了半角空格外,与所有小写英文字母都匹配。
- 字符串由小写英文字母和
输出
输出通过C-Filter过滤后的字符串,并在末尾输出一个换行符。
示例 1
输入示例
abc aaa ababa abcba abc
2
abc
**a**
输出示例
*** aaa ***** abcba ***
- NG词中有两个字符串
abc
和**a**
。 abc
在第一个和第五个输入中与NG词abc
匹配,所以输出***
。ababa
在第三个输入中与NG词**a**
匹配,所以输出*****
。
示例 2
输入示例
aaaa aaa aaaaaa aaaa
3
a
aa
aaa
输出示例
aaaa *** aaaaaa aaaa
- 只需要考虑完全匹配的模式,所以
aaaa
和aaaaa
不需要更改。
示例 3
输入示例
i have a pen
1
*
输出示例
* have * pen
- 只有长度为1的单词被识别为NG词。
示例 4
输入示例
digital arts
1
digital*arts
输出示例
digital arts
- 半角空格不匹配
*
。
数据来源
DigitalArts 2012