Lang:G++
Edit12345678910111213141516171819202122232425262728293031#include<iostream>#include<cstring>#include<string>#include<queue>using namespace std;struct Trie{int flag;struct Trie *next[26];struct Trie *suffix;Trie(){flag=0;memset(next,NULL,sizeof(next));suffix=NULL;}};void build(Trie *root, string &s){Trie *cur=root;int len=s.length();for(int i=0;i<len;++i){int id=s[i]-'a';if(!cur->next[id]){Trie *nn=new Trie();cur->next[id]=nn;}cur=cur->next[id];}cur->flag=1;}