10分代码求调,玄关
查看原帖
10分代码求调,玄关
1296840
zhang_fengrui楼主2024/3/16 12:02

代码如下:

# include <bits/stdc++.h>
using namespace std;
const int MAX_N = 1010;
int Tree[MAX_N][26];
char s[MAX_N];
int vis[MAX_N];
int number[MAX_N];
void build()
{
	int len = strlen(s);
	int id = 0,cnt = 0;
	for(int i = 0;i < len;i++)
	{
		int c = s[i]-'a';
		if(!Tree[id][c]) Tree[id][c] = ++cnt;
		id = Tree[id][c];
	}
	number[id]=1;
}
int find()
{
	int len = strlen(s);
	int id = 0;
	int flag = 0;
	for(int i = 0;i < len;i++)
	{
		int u = s[i]-'a';
		if(!Tree[id][u]) return 0;
		id = Tree[id][u];
		if(!vis[id])
		{
			vis[id] = 1;
			flag = 1;
		}
	}
	if(!flag) return 2;
	if(number[id]) return 1;
}
int main (){
	int n;
	cin >> n;
	while(n--)
	{
		cin >> s;
		build();
	}
	cin >> n;
	while(n--)
	{
		cin >> s;
		int ans = find();
		if(ans == 1)
		{
			cout << "OK" << endl;
		}
		else if(ans == 0)
		{
			cout << "WRONG" << endl;
		}
		else
		{
			cout << "REPEAT" << endl;
		}
	}
	return 0;
}

啊啊啊为什么10分啊

2024/3/16 12:02
加载中...