#D0013. 拆东墙补西墙

拆东墙补西墙

题目描述

给你三个字符串 ssttpp

你可以进行任意次操作,每次操作,你可以从字符串 pp 中取出任意一个元素,并将其插入到字符串 ss 的任意一个位置(但是不能修改字符串 ss 中现有字符的先后顺序)。

你希望最终字符串 ss 能够变成 tt

问:是否存在可行方案?

输入格式

输入包含多组测试数据。

输入的第一行包含一个整数 t(1q100)t(1 \le q \le 100),表示测试数据组数。

接下来每组测试数据包含三行,其中第一行为一个字符串 ss,第二行为一个字符串 tt,第三行为一个字符串 pp

输出格式

对于每组测试数据,输出一行。如果从字符串 pp 中选出一些字符插入到字符串 ss 中能使其等于字符串 tt,输出 "YES";否则,输出 "NO"。

input

4
ab
acxb
cax
a
aaaa
aaabbcc
a
aaaa
aabbcc
ab
baaa
aaaaa

output

YES
YES
NO
NO

说明/提示

样例解释

对于第 11 组测试数据:

  1. s=s= ab, t=t= acxb, p=p= cax
  2. s=s= acb, t=t= acxb, p=p= ax
  3. s=s= acxb, t=t= acxb, p=p= a

对于第 22 组测试数据:

  1. s=s= a, t=t= aaaa, p=p= aaabbcc
  2. s=s= aa, t=t= aaaa, p=p= aabbcc
  3. s=s= aaa, t=t= aaaa, p=p= abbcc
  4. s=s= aaaa, t=t= aaaa, p=p= bbcc

数据规模与约定

  • 对于 50%50\% 的测试数据,q10,s,t,p10q \le 10, |s|, |t|, |p| \le 10
  • 对于 100%100\% 的测试数据,1q100,1s,t,p1001 \le q \le 100, 1 \le |s|,|t|,|p| \le 100,且字符串 s,t,ps, t, p 均由小写英文字母构成。