#include <iostream>
#include <string>
using namespace std;
bool isSubsequence(string s, string t) {
int n = s.size(), m = t.size();
int i = 0, j = 0;
// 双指针法,遍历字符串 s 和 t
while (i < n && j < m) {
// 如果字符匹配
if (s[i] == t[j]) {
j++; // 移动 t 的指针
}
i++; // 始终移动 s 的指针
}
// 如果 j 遍历完 t,表示 t 是 s 的子序列
return j == m;
}
int main() {
int T; // 测试用例数
cin >> T;
while (T--) {
int n, m;
string s, t;
cin >> n >> m; // 输入字符串的长度
cin >> s >> t; // 输入字符串 s 和 t
// 判断 t 是否为 s 的子序列
if (isSubsequence(s, t)) {
cout << "YES" << endl;
} else {
cout << "NO" << endl;
}
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c3RyaW5nPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKYm9vbCBpc1N1YnNlcXVlbmNlKHN0cmluZyBzLCBzdHJpbmcgdCkgewogICAgaW50IG4gPSBzLnNpemUoKSwgbSA9IHQuc2l6ZSgpOwogICAgaW50IGkgPSAwLCBqID0gMDsKCiAgICAvLyDlj4zmjIfpkojms5XvvIzpgY3ljoblrZfnrKbkuLIgcyDlkowgdAogICAgd2hpbGUgKGkgPCBuICYmIGogPCBtKSB7CiAgICAgICAgLy8g5aaC5p6c5a2X56ym5Yy56YWNCiAgICAgICAgaWYgKHNbaV0gPT0gdFtqXSkgewogICAgICAgICAgICBqKys7IC8vIOenu+WKqCB0IOeahOaMh+mSiAogICAgICAgIH0KICAgICAgICBpKys7IC8vIOWni+e7iOenu+WKqCBzIOeahOaMh+mSiAogICAgfQoKICAgIC8vIOWmguaenCBqIOmBjeWOhuWujCB077yM6KGo56S6IHQg5pivIHMg55qE5a2Q5bqP5YiXCiAgICByZXR1cm4gaiA9PSBtOwp9CgppbnQgbWFpbigpIHsKICAgIGludCBUOyAvLyDmtYvor5XnlKjkvovmlbAKICAgIGNpbiA+PiBUOwoKICAgIHdoaWxlIChULS0pIHsKICAgICAgICBpbnQgbiwgbTsKICAgICAgICBzdHJpbmcgcywgdDsKICAgICAgICAKICAgICAgICBjaW4gPj4gbiA+PiBtOyAgLy8g6L6T5YWl5a2X56ym5Liy55qE6ZW/5bqmCiAgICAgICAgY2luID4+IHMgPj4gdDsgIC8vIOi+k+WFpeWtl+espuS4siBzIOWSjCB0CgogICAgICAgIC8vIOWIpOaWrSB0IOaYr+WQpuS4uiBzIOeahOWtkOW6j+WIlwogICAgICAgIGlmIChpc1N1YnNlcXVlbmNlKHMsIHQpKSB7CiAgICAgICAgICAgIGNvdXQgPDwgIllFUyIgPDwgZW5kbDsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBjb3V0IDw8ICJOTyIgPDwgZW5kbDsKICAgICAgICB9CiAgICB9CgogICAgcmV0dXJuIDA7Cn0K