1. 程式人生 > >python實現 字典樹

python實現 字典樹

關於字典樹,相信搜到這篇部落格的人一定先看了百度百科。

這裡使用hash實現

val = [0 for i in range(100000)] #字典樹,陣列實現
n=int(raw_input())
for i in range(n):
    s = raw_input()
    l = s.__len__()
    num=0
    for j in range(l):
        num=num*27
        num+=ord(s[j])-97+1
        val[num]=val[num]+1
m=int(raw_input())
for i in range(m):
    s = raw_input()
    l = s.__len__()
    num = 0
    for j in range(l):
        num = num * 27
        num += ord(s[j])- 97 + 1 #強制轉換
    print(val[num])


執行截圖如下,輸出查詢的前綴出現多少次