站外题字典树求调qaq
  • 板块学术版
  • 楼主hema5177
  • 当前回复0
  • 已保存回复0
  • 发布时间2024/7/17 14:13
  • 上次更新2024/7/17 14:27:43
查看原帖
站外题字典树求调qaq
648623
hema5177楼主2024/7/17 14:13

#include<iostream>
#include<cstdio>
#include<cstring>
#include<string>
#include<cmath>
#include<algorithm>
using namespace std;
int k=1,n;
struct trie
{
	int son[27],sum;
}t[1001];
char s[1001][101];
void insert(int j)
{
	int l1=strlen(s[j]),p=1;
	for(int i=0;i<l1;i++)
	{
		if(t[p].son[s[j][i]-'a']==0) t[p].son[s[j][i]-'a']=++k;
		p=t[p].son[s[j][i]-'a'];
		t[p].sum++;
	}
}
void check(int j)
{
	int p=1;
	bool flag=1;
	for(int i=0;i<strlen(s[j]);i++)
	{
		if(t[p].sum>1&&i!=strlen(s[j])-1) cout<<s[j][i];
		else if(t[p].sum==1)
		{
			cout<<s[j][i]<<endl;
			break;
		}
		else if(t[p].sum>1&&i==strlen(s[j])-1)
		{
			cout<<s[j][i]<<endl;
			break;
		}
	}
}
int main()
{
	while(scanf("%s",s[++n])!=EOF) insert(n);
	for(int i=1;i<=n;i++)
	{
		for(int j=0;j<strlen(s[i]);j++) cout<<s[i][j];
		cout<<" ";
		check(i);
	}
}

感觉跟书上写的差不多……吧?

全WA了qaq

2024/7/17 14:13
加载中...