建立字典樹,求以……為字首的單詞個數
統計難題
問題描述:
lgnatius最近遇到乙個難題,老師交給他很多單詞(只有小寫字元組成,不會有重複的單詞出現),現在老師要他統計出以某個字串為字首的字元數量(單詞本身也是自己的字首)。
輸入:
輸入資料的第一部分是一張單詞表,單詞的長度不超過10,它們代表的是老師交給lgnatius統計的單詞,乙個空行代表單詞表的結束。第二部分是一連串的提問,每行乙個提問,每個提問都是字串。
注意:本題只有一組測試資料,處理到檔案結束
輸出:
對於每個提問,給出以該字串為字首的單詞數量。
sample input:
banana
band
bee
absolute
acmba
b band
abcsample output:
2 3 1 0
#include
#include
using namespace std;
int n, m, ans;
char
str[10];
struct dic_tree //構造字典樹,26叉樹,根節點為空
}}*root; //樹是通過指標形式表達的
void build(dic_tree *p, char
str, int end) // 生成字典樹的函式
else
p->num++;
}}int search(dic_tree *p, char
str, int end)
++ix;
}else
return
0; }
}int main()
while(scanf("%s", str) != eof)
printf("%d/n",search(root, str, strlen(str))); //搜尋字典樹
return
0;}
當然,這道題還可以用map,只是時間較長:(^__^)
#include
#include
#include
using namespace std;
int main()
} while(scanf("%s",&temp)!=eof)
coutreturn
0;
}
字典樹模板
字典樹,又稱單詞查詢樹,trie樹,是一種樹形結構,典型應用是用於統計,排序和儲存大量的字串,所以經常被搜尋引擎系統用於文字詞頻統計。它的優點是 利用字串的公共字首來節約儲存空間,最大限度的減少無謂的字串比較,查詢效率比雜湊表高。字典樹的應用 字串的快速檢索 雜湊最長公共字首 include usi...
字典樹模板
package template public class triemod trie root new trie for string s str if find root,asdf else public static void insert final trie root,string str ...
字典樹模板
字典樹 字典樹,又稱單詞查詢樹,trie樹,是一種樹形結構,雜湊表的乙個變種。用於統計,排序和儲存大量的字串 也可以儲存其 的 優點就是利用公共的字首來節約儲存空間。在這舉個簡單的例子 比如說我們想儲存3個單詞,nyist nyistacm nyisttc。如果只是 單純的按照以前的字元陣列儲存的思...