AT_digitalarts_1 C-Filter

题目描述

对安全性感兴趣的高桥君是一位希望进入 Digital Arts 株式会社工作的青年。 为了在面试中展示自己,他打算用自己擅长的编程能力制作一款过滤软件“C-Filter”。 “C-Filter”是一款软件,如果给定的字符串 $s$ 中存在与预先注册的“NG词”完全匹配的字符串,则将该字符串用与其长度相同数量的 `*` 替换后输出。这个替换字符串的过程称为过滤。 “NG词”由半角小写英文字母和 `*` 组成。`*` 可以匹配任意一个半角小写英文字母。 例如,`myonmyon` 可以与 NG 词 `myo*myon` 匹配。 但是,NG 词只针对每个单词分别应用,因此,`myo myon` 不会与 NG 词 `myo*myon` 匹配。 此外,NG 词必须与某个单词完全一致才能匹配。 例如,`abcde` 不会与 NG 词 `abc`、`bcd` 或 `cde` 匹配。 给定字符串 $s$ 和 NG 词,请输出 C-Filter 过滤后的字符串。 输入按以下格式从标准输入给出。 > $s$ $N$ $t_{1}$ : : $t_{N}$ 1. 输入共 $N+2$ 行。 2. 第 $1$ 行给出长度不少于 $1$ 且不超过 $1,000$ 的字符串 $s$。 - $s$ 是需要过滤的目标字符串,由若干个用半角空格分隔的单词组成。 5. 第 $2$ 行给出一个整数 $N$,表示 NG 词的个数,$0 \leq N \leq 50$。 6. 第 $3$ 行到第 $N+2$ 行,每行给出一个 NG 词 $t_{i}$,$1 \leq i \leq N$。 - 字符串 $t_{i}$ 由半角小写英文字母和 `*` 组成。 - 字符串 $t_{i}$ 的长度不少于 $1$ 且不超过 $20$。 - NG 词中的 `*` 可以匹配除半角空格外的任意一个半角小写英文字母。 请输出用 C-Filter 过滤后的字符串 $s$,输出一行。 最后请输出换行符。 示例: ``` abc aaa ababa abcba abc 2 abc **a** ``` ``` *** aaa ***** abcba *** ``` - NG 词有 `abc` 和 `**a**` 两个。 - 第 $1$ 个和第 $5$ 个单词 `abc` 与 NG 词 `abc` 匹配,因此输出为 `***`。 - 第 $3$ 个单词 `ababa` 与 NG 词 `**a**` 匹配,因此输出为 `*****`。 ``` aaaa aaa aaaaaa aaaa 3 a aa aaa ``` ``` aaaa *** aaaaaa aaaa ``` - 只需考虑完全匹配的情况,因此 `aaaa` 和 `aaaaa` 不需要替换。 ``` i have a pen 1 * ``` ``` * have * pen ``` - 只有长度为 $1$ 的单词会被识别为 NG 词。 ``` digital arts 1 digital*arts ``` ``` digital arts ``` - 半角空格不会被 `*` 匹配。

输入格式

输出格式

说明/提示

无 由 ChatGPT 4.1 翻译