0分求调
查看原帖
0分求调
1200191
封禁用户楼主2024/11/24 12:32
#include <bits/stdc++.h>
typedef long long ll;
using namespace std;
const int M=2e4+5;
int n,m;
int trie[M][27]= {0};
int cnt=0,idx=0;
bool v[M];
void insert(string &s) {
	int p=0;
	for(int i=0; i<s.size(); i++) {
		int u=s[i]-'a';
		if(trie[p][u]==0) {
			trie[p][u]=++cnt;
		}
		p=trie[p][u];
	}
	v[p]=true;
}
int find(string &s) {
	int p=0;
	int x=0;
	for(int i=0; i<s.size(); i++) {
		int u=s[i]-'a';
		if(trie[p][u]==0) {
			return 0;
		} else {
			x++;
			p=trie[p][u];
		}
	}
	if(x==1) {
		return 1;
	} else if(x>1){
		return 2;
	} 
}
string s,ss;
int sss=0;
int main() {
	//freopen(".in", "r", stdin);
	//freopen(".out", "w", stdout);
	cin>>n;
	for(int i=0; i<n; i++) {
		cin>>s;
		insert(s);
	}
	cin>>m;
	for(int i=0; i<n; i++) {
		cin>>ss;
		sss=find(ss);
		if(sss==1)cout<<"OK"<<"\n";
		else if(sss==0)cout<<"WRONG"<<"\n";
		else if(sss>1)cout<<"REPEAT"<<"\n";
	}
	return 0;
}

2024/11/24 12:32
加载中...