#3208. 两个字符串

两个字符串

题目描述

字符串 s=s1s2…s∣s∣s = s_1 s_2 \ldots s_{|s|}(∣s∣|s| 为 ss 的长度)的一个长度为 ∣x∣|x| 的子序列是指字符串 x=sk1sk2…sk∣x∣x = s_{k_1} s_{k_2} \ldots s_{k_{|x|}}(1≤k1<k2<…<k∣x∣≤∣s∣1 \le k_1 \lt k_2 \lt \ldots \lt k_{|x|} \le |s|)。

给定两个字符串 ss 和 tt。考虑字符串 ss 中所有与字符串 tt 相同的子序列。问:字符串 ss 的每个字符是否都至少出现在其中一个这样的子序列里?换句话说,是否对所有 ii(1≤i≤∣s∣1 \le i \le |s|),都存在 ss 的一个子序列 x=sk1sk2…sk∣x∣x = s_{k_1} s_{k_2} \ldots s_{k_{|x|}},使得 x=tx = t 且存在某个 jj(1≤j≤∣x∣1 \le j \le |x|)满足 kj=ik_j = i?

输入格式

第一行包含字符串 ss,第二行包含字符串 tt。两行都只含小写英文字母。给定字符串非空,且每个字符串的长度都不超过 2⋅1052 \cdot 10^5。

输出格式

若字符串 ss 的每个字符都至少出现在一个所述子序列中,输出 "Yes"(不含引号);否则输出 "No"。

abab
ab
Yes
abacaba
aba
No
abc
ba
No

说明/提示

第一组样例中,字符串 tt 以三种方式作为 ss 的子序列出现(分别用到 ss 的字符位置 (1,2)、(1,4)、(3,4))。这些出现方式覆盖了 ss 的每个字符。

第二组样例中,ss 的第 4 个字符没有出现在 tt 的任何一次出现中。

第三组样例中,tt 根本没有作为子序列出现在 ss 中。