#digitalarts1. [digitalarts_1]C-Filter
[digitalarts_1]C-Filter
問題文
セキュリティに興味がある高橋君は、デジタルアーツ株式会社に就職したい青年です。
彼は、面接で自分をアピールするために、得意なプログラミングでフィルタリングソフト「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の出力する文字列を答えてください。
入力
入力は以下の形式で標準入力から与えられる。 : :
- 入力は 行からなる。
- 行目には 文字以上 文字以下の文字列 が与えられる。
- はフィルタリングする対象の文字列を半角スペースで区切って繋げた文字列である。
- 行目にはNGワードの個数を表す整数 が与えられる。
- 行目から 行目までNGワードを表す文字列 が与えられる。
- 文字列 は半角英小文字と
*
から構成される。 - 文字列 の長さは 文字以上、 文字以下である。
- 文字列 に含まれる
*
は、半角スペースを除くすべての半角英小文字 文字をフィルタリングの対象とします。
出力
入力された文字列 をC-Filterでフィルタリングした結果を 行で出力せよ。
なお、最後には改行を出力せよ。
入力例 1
abc aaa ababa abcba abc
2
abc
**a**
出力例 1
*** aaa ***** abcba ***
- NGワードには
abc
と**a**
の つの文字列が登録されています。 - 番目と 番目に入力される
abc
はNGワードabc
に一致するので、***
と出力されます。 - 番目に入力される
ababa
はNGワード**a**
に一致するので、*****
と出力されます。
入力例 2
aaaa aaa aaaaaa aaaa
3
a
aa
aaa
出力例 2
aaaa *** aaaaaa aaaa
- 完全一致のパターンだけを考慮すれば良いため、
aaaa
やaaaaa
は変える必要がありません。
入力例 3
i have a pen
1
*
出力例 3
* have * pen
- 1文字の単語だけNGワードとして認識されます。
入力例 4
digital arts
1
digital*arts
出力例 4
digital arts
- 半角スペースは
*
にマッチしません。
Source Name
DigitalArts 2012