蒟蒻求助
思路没问题啊
#include<bits/stdc++.h>
#define int long long
using namespace std;
const int maxn =2e5+10;
int Q;
string s1,s2;
bool vis[maxn];
signed main()
{
cin>>Q;
while(Q--){
cin>>s1>>s2;
int p1=s1.size();
int p2=s2.size();
s1=" "+s1;
s2=" "+s2;
while(p1>0&&p2>0){
if(s1[p1] == s2[p2]){
vis[p1]=1;
p2--;
}
p1--;
}
if(p2 != 0){
cout<<"NO"<<endl;
}
else{
bool flag = 0;
for(int i=1;i<s1.size();i++){
if(vis[i]){
for(int j=i+1;j<s1.size();j++){
if(!vis[j]&&s1[j] == s1[i]&&!flag){
flag = 1;
cout<<"NO"<<endl;
}
}
vis[i] = 0;
}
}
if(!flag)cout<<"YES"<<endl;
}
}
return 0;
}