AT_code_thanks_festival_2015_e ノイズ除去
题目描述
你作为一名程序员在某公司工作。
在这家公司,你的工作是判断用户收集到的字符串的某个连续部分中是否包含指定的字符串。
例如,字符串 `rhd` 包含在字符串 `thisisrhdcontest` 中,但不包含在字符串 `thanks` 或 `ratheads` 中。
然而,由于用户的反馈,发现用户提交的字符串中可能混入了不需要的字符作为噪声,导致无法按照用户的期望进行判断。
因此,你需要编写一个程序,依次处理以下 $Q$ 个查询。
第 $i$ 个查询:「给定字符串 $S_i$ 和字符串 $T_i$,你可以选择若干个字符 $x_1, x_2, ..., x_k$(也可以一个都不选),将 $S_i$ 中所有选中的字符全部删除,得到字符串 $S'_i$。请判断,在所有可能的 $S'_i$ 中,是否存在一个 $S'_i$ 包含字符串 $T_i$。」
例如,当 $S_1 = \text{ratheads}$,$T_1 = \text{rhd}$ 时,如果从 $S_1$ 中删除字符 `a`、`e`、`t`,得到 $S'_1 = \text{rhds}$,其中包含字符串 $T_1 = \text{rhd}$,因此可以说 $T_1$ 是可以被包含的。
输入格式
输入通过标准输入给出,格式如下:
> $Q$
> $S_1\ T_1$
> $S_2\ T_2$
> $\vdots$
> $S_Q\ T_Q$
- 第 $1$ 行为查询的个数 $Q\ (1 \leq Q \leq 5,000)$。
- 接下来的 $Q$ 行,每行包含两个仅由小写英文字母组成的字符串 $S_i$ 和 $T_i\ (1 \leq |S_i| \leq 50,\ 1 \leq |T_i| \leq 50)$,用空格分隔。
输出格式
请输出 $Q$ 行,每行对应一个查询的答案。如果对于第 $i$ 个查询,字符串 $T_i$ 可以被包含,则输出 `YES`,否则输出 `NO`。每行末尾需换行。
说明/提示
### 样例解释 1
共有 $4$ 个查询。
- 查询 $1$ 已在题目描述中给出。通过从 $S_1$ 中删除字符 `a`、`e`、`t`,得到 $S'_1 = \text{rhds}$,其中包含字符串 $T_1$,因此输出 `YES`。
- 查询 $2$,即使不删除任何字符,$S_2$ 中也包含 $T_2$,因此输出 `YES`。
- 查询 $3$,无论如何删除字符,$S'_3$ 都无法包含 $T_3$,因此输出 `NO`。
- 查询 $4$,无论如何删除字符,$S'_4$ 都无法包含 $T_4$,因此输出 `NO`。
需要注意的是,当你指定删除某个字符时,不能只删除部分该字符,必须将其全部删除。
由 ChatGPT 4.1 翻译