蒟蒻求助
查看原帖
蒟蒻求助
373757
never_AK楼主2022/7/25 19:39

蒟蒻求助

思路没问题啊

#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;
}
2022/7/25 19:39
加载中...