模板题

#include <iostream>
#include <cstring>
#include <cstdio>
using namespace std;
struct Node{
	int cnt, son[29];
	bool hav;
	Node(){
		cnt = hav = 0;
	}
}trie[500005];
int c, n, m, len;
char s[55];
void ins(){
	int u=0;
	for(int i=0; i<len; i++){
		int v=s[i]-'a';
		if(!trie[u].son[v])	trie[u].son[v] = ++c;
		u = trie[u].son[v];
	}
	trie[u].hav = true;
}
int que(){
	int u=0;
	for(int i=0; i<len; i++){
		int v=s[i]-'a';
		if(!trie[u].son[v])	return 3;
		u = trie[u].son[v];
	}
	if(!trie[u].hav)	return 3;
	if(!trie[u].cnt){
		trie[u].cnt++;
		return 1;
	}
	return 2;
}
int main(){
	cin>>n;
	for(int i=1; i<=n; i++){
		scanf("%s", s);
		len = strlen(s);
		ins();
	}
	cin>>m;
	for(int i=1; i<=m; i++){
		scanf("%s", s);
		len = strlen(s);
		int t=que();
		if(t==1)	printf("OK\n");
		else if(t==2)	printf("REPEAT\n");
		else	printf("WRONG\n");
	}
	return 0;
}

相关文章:

  • 2021-08-25
  • 2021-07-15
  • 2022-12-23
  • 2021-08-15
  • 2021-09-09
  • 2022-01-19
  • 2021-06-25
  • 2021-09-11
猜你喜欢
  • 2021-08-03
  • 2021-10-30
  • 2022-01-31
  • 2022-03-07
  • 2022-02-19
  • 2022-12-23
  • 2021-05-27
相关资源
相似解决方案