trie 树 hipocoder 2

来源:互联网 发布:php音乐播放器源码 编辑:程序博客网 时间:2024/06/08 10:13
#include<iostream>#include<string>#include<map>using namespace std;struct Node{char ch;int number;Node* next[26];Node(){number = 1;for (int i = 0; i < 26; ++i)next[i] = 0;}};Node* roots = new Node();void build(string& s){Node* p = roots;for (int i = 0; i < s.length(); ++i){if (p->next[s[i] - 'a'] == 0){p->next[s[i] - 'a'] = new Node();p->next[s[i] - 'a']->ch = s[i];}else{p->next[s[i] - 'a']->number += 1;}p = p->next[s[i] - 'a'];}}void travel(string& s){Node* p = roots;for (int i = 0; i < s.length(); ++i){if (p == 0){cout << 0 << endl;return;}p = p->next[s[i] - 'a'];}if (p)cout << p->number << endl;elsecout << 0 << endl;}int main(){int n, m;string istr;string sstr;cin >> n;for (int i = 0; i < n; ++i){cin >> istr;build(istr);}cin >> m;for (int i = 0; i < m; ++i){cin >> sstr;travel(sstr);}return 0;}


0 0
原创粉丝点击