字典樹練習(一)hihocoder 1014(求相同字首的數目)
題目連結:
http://hihocoder.com/problemset/problem/1014
題意:
給定n個單詞,然後我們構成一個字典樹,然後再給你m個串,求有多少個單詞是以這個串為字首的。
程式碼如下:
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
const int maxn = 100010;
const int max_size = 30;
int id(char c){
return c-'a';
}
struct Trie{
Trie *ch[max_size];
int num;
Trie(){
num = 0;
for(int i=0;i<max_size;i++)
ch[i]=NULL;
}
}*root;
void insert_str(char *s){
Trie *p = root;
p->num++;
for(int i=0; p&&s[i] ; i++){
int u = id(s[i]);
if(p->ch[u]==NULL)
p->ch[u] = new Trie;
p=p->ch[u];
p->num++;
}
}
int find_str(char *s){
Trie *p = root;
for(int i=0;p&&s[i];i++){
int u = id(s[i]);
if(p->ch[u]==NULL) return 0;
p=p->ch[u];
}
return p->num;
}
int main()
{
char s[12];
int n, m;
while(~scanf("%d", &n))
{
root = new Trie;
while(n--){
scanf("%s", s);
insert_str(s);
}
scanf("%d", &m);
while(m--){
scanf("%s", s);
printf("%d\n", find_str(s));
}
}
return 0;
}
相關文章
- 【Tire 求字典出現的字首個數】hihocoder 1014 Trie樹
- 字典樹(字首樹)簡單實現
- hihocoder 1014 Trie樹 (Trie 記模板 陣列+指標)陣列指標
- POJ2752--KMP求所有可能的相同字首字尾KMP
- hihoCoder 1107 Shortest Proper Prefix (字典樹的遍歷)
- 字典樹學習
- hihocoder trie 樹
- hdu1251 字典樹的應用(查詢公共字首)
- ABC353E字典樹處理最長公共字首
- 字首樹
- 【練習】樹的實現
- 新手練習:Python練習題目Python
- Python 小練習 求list內中間數Python
- 一些“字典樹”典
- Trie樹,字典樹
- 字典樹
- 輾轉相除法求最大公約數——[js練習]JS
- Python練習題篇(列表、字典、元祖)Python
- 字典樹的應用
- 【演算法】字首樹演算法
- 字典樹(Trie)
- 字典樹Trie
- 【數位dp 求滿足的值和】hihocoder 1033 交錯和
- 【練習】二叉樹的實現二叉樹
- 【練習】二叉樹的遍歷二叉樹
- python基礎(四)----列表、字典練習題Python
- PHP演算法練習二:求n和指定數的絕對差PHP演算法
- 字首樹及其Java實現Java
- [Offer收割]程式設計練習賽2 hihocoder 1273 (DFS + 狀壓)程式設計
- JAVA小練習:求兩個日期的差值Java
- Leetcode-572: 另一個樹的子樹( leetcode100:相同的樹 )LeetCode
- 字典樹專題
- codevs 4189 字典【字典樹】dev
- LeetCode 100——相同的樹LeetCode
- 【Ac自動機 查詢是否存在一個字典中的字串】hihocoder 1036 Trie圖字串
- 二叉樹遞迴練習二叉樹遞迴
- [題目記錄]一本通高手訓練-數列
- 求區間不同數的個數【樹狀陣列求解】陣列