编程题
### 问题描述 在一家大型电商平台上,商家经常会针对某些商品提供折扣代码。这些折扣代码是由大写字母组成的字符串。为了提高用户的参与度和购买意愿,该电商平台决定提供一种新的活动形式:当用户在购物车中的商品名称连续子序列中包含某个折扣代码时,可以获得相应的折扣。 例如,商品名称为 `ABDCD`,折扣代码为 `ABD`,因为 `ABD` 是 `ABDCD` 的一个连续子序列,所以用户可以使用这个折扣代码。 你的任务是为电商平台设计一个序列自动机算法,对于给定的商品名称和多个折扣代码,判断每个折扣代码是否可以使用。 ### 输入格式 第一行包含一个字符串 $S$,$(1 \leq |S| \leq 1000)$,表示商品名称。 第二行包含一个整数 $n$,$(1 \leq n \leq 100)$,表示折扣代码的数量。 接下来的 $n$ 行,每行包含一个字符串 $code_i$,$(1 \leq |code_i| \leq 100)$,表示第 $i$ 个折扣代码。 ### 输出格式 输出 $n$ 行,每行包含 `YES` 或 `NO`,表示对应的折扣代码是否可以使用。 ### 样例输入 ``` ABDCD 3 ABD BCD EFG ``` ### 样例输出 ``` YES NO NO ``` ### 样例说明 `ABD` 是 `ABDCD` 的一个连续子序列。 `CDE` 不是 `ABDCD` 的一个连续子序列。 `EFG` 不是 `ABDCD` 的一个连续子序列。 ### 测评数据规模 对于 $40$% 的数据,$|S| \leq 50$ 且 $n \leq 10$。 对于 $80$% 的数据,$|S| \leq 500$ 且 $n \leq 100$。 对于 $100$% 的数据,$|S| \leq 10^3$ 且 $n \leq 10^4$。
查看答案
赣ICP备20007335号-2