本文共 959 字,大约阅读时间需要 3 分钟。
字典树节点属性:存储单词。
注意!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 受网友友好提醒,这道题有可能会出现一下情况:START
from fiwo hello difh trap dif mars riwosf earth fnnvk like fiiwj END START difh, i’m fiwo riwosf. i fiiwj fnnvk! dif fnn END1、即某个关键字是另一个关键字的前缀的 2、以某个关键字的前缀出现,但是字典里不是一个关键字的,如上面的fnn是fnnvk的前缀
蓝瘦,因为考虑少这两种情况WA了好几遍。
那么为了解决这种情况,节点属性应设为一个结构体 struct nod { char s[50]; int flag; }num[maxn]; 同时记录单词,以及是否某个火星文在这里有翻译,flag=1有,flag=0无。 代码如下:#include#include #include #include #include using namespace std;typedef long long ll;const int maxn=1e6+5;int Trie[maxn][26];char s1[15],s2[15],s[3005],s0[3005],ans[8000][3005];int tot=1,row=0,col=0;struct nod{ char s[50]; int flag;}num[maxn];void insert(){ int len,node,i,j; len=strlen(s2)-1;node=0; for(i=0;i<=len;i++) { if(Trie[node][s2[i]-'a']==0) Trie[node][s2[i]-'a']=tot++; node=Trie[node][s2[i]-'a']; } //strcpy(num[node],s1);cout< <
另外这道题也要注意下苛刻的输入。
转载地址:http://sddci.baihongyu.com/