CF1975G Zimpha Fan Club
题目描述
有一天,Zimpha 随意想出了一个问题。作为“Zimpha 粉丝俱乐部”的一员,你决定来解决这个问题。
给定两个字符串 $s$ 和 $t$,长度分别为 $n$ 和 $m$。两个字符串只包含小写英文字母、`-` 和 `*`。
你需要按照以下规则替换所有的 `*` 和 `-`:
- 每个 `-` 必须被替换为任意一个小写英文字母。
- 每个 `*` 必须被替换为任意长度(可能为零)的、只包含小写英文字母的字符串。
注意,你可以将两个不同位置的 `-` 替换为不同的字母,也可以将两个不同位置的 `*` 替换为不同的字符串。
假设 $s$ 和 $t$ 被分别替换成 $s'$ 和 $t'$。现在你想知道,是否存在一种替换方式,使得 $s' = t'$。
输入格式
第一行输入包含两个整数 $n$ 和 $m$($1 \leq n, m \leq 2 \times 10^6$),分别表示字符串 $s$ 和 $t$ 的长度。
第二行输入长度为 $n$ 的字符串 $s$。保证 $s$ 只包含小写英文字母、`-` 和 `*`。
第三行输入长度为 $m$ 的字符串 $t$。保证 $t$ 只包含小写英文字母、`-` 和 `*`。
输出格式
对于每个测试用例,如果存在一种替换方式使得 $s' = t'$,输出 "Yes";否则输出 "No"。
你可以以任意大小写输出 "Yes" 和 "No"(例如,"yEs"、"yes"、"Yes" 和 "YES" 都会被识别为肯定的回答)。
说明/提示
在第二个测试用例中,我们可以将两个字符串都变成 ttklwxx。在 $s$ 中,`-` 被替换为 l。在 $t$ 中,`*` 被替换为空串,第一个和第二个 `-` 被分别替换为 k 和 w。
在第五个测试用例中,我们可以将两个字符串都变成 bulijiojioxdibuliduo。
由 ChatGPT 4.1 翻译