1 条题解
-
0
思路
节点数等于所有非空前缀数加根,重复词及词为前缀不新增已有节点,最多32K输入。
参考程序(C++11)
#include <bits/stdc++.h> using namespace std; int main(){vector<array<int,26>>tr(1);string s;while(cin>>s){int p=0;for(char c:s){int k=c-'A';if(!tr[p][k]){tr[p][k]=tr.size();tr.push_back({});}p=tr[p][k];}}cout<<tr.size()<<'\n';}
- 1