#D0803. 双页暗号

双页暗号

题目描述

小 C 有两页暗号,第一页是字符串 AA,第二页是字符串 BB。两页暗号都只包含小写英文字母。

小 C 想拼出一个目标暗号 TT。他会从左到右检查目标暗号的每个字符,并按下面的规则取字符:

  • 如果第一页还没有使用的最左边字符等于当前目标字符,就必须从第一页取走这个字符;
  • 否则,如果第二页还没有使用的最左边字符等于当前目标字符,就从第二页取走这个字符;
  • 如果两页当前都不能取出这个字符,就无法继续拼接。

每个字符都必须按原来所在页面的先后顺序使用,不能跳过前面的字符去拿后面的字符。请判断小 C 按照上述规则能否正好拼出目标暗号 TT,并且用完两页中的所有字符。

输入格式

第一行输入字符串 AA

第二行输入字符串 BB

第三行输入字符串 TT

输出格式

如果能拼出目标暗号,输出 Yes;否则输出 No

样例

abc
def
adbcef
Yes
abc
def
abdfce
No
aaa
aa
aaaaa
Yes

样例解释

样例 1 中,按规则可以依次取第一页的 a,第二页的 d,第一页的 b,第一页的 c,第二页的 e,第二页的 f,拼出 adbcef

样例 2 中,处理到目标暗号的 f 时,第一页当前是 c,第二页当前是 e,两页都不能取出 f,所以无法拼出。

样例 3 中,两页都只包含字母 a,总长度也是 55,可以拼出目标暗号。

数据范围与约定

子任务 分值 限制
11 3030 保证 AA 不包含 zBB 只包含一个字符 z,且 TT 的最后一个字符是 z,其他字符不是 z
22 保证 A,B,TA,B,T 都只包含字母 a
33 4040 无特殊限制

对于 100%100\% 的数据,保证 1A,B5001 \le |A|,|B| \le 5001T10001 \le |T| \le 1000,字符串只包含小写英文字母。