GZS與古英文本典 字典樹

2021-08-04 09:28:25 字數 1920 閱讀 7115

有一天, gzs得到一本古代的英文本典, 很可惜, 由於年代久遠, 很多單詞都看不清楚了. 但是, 這怎麼能難倒我們的g神呢, g神想要用這本字典查詢一些單詞, 下面給出字典中的內容. 字典中的單詞全部由小寫字母組成, 字跡模糊的部分用'?'或者'*'來表示, '?'可以匹配乙個小寫字母, '*'可以匹配0個或者1個或者多個小寫字母. 例如, a?b可以代表aab, abb......azb, 而a*b可以代表ab, aab, abb...azb, aaab, aabb......然後給出一部分待查詢的單詞, 全部由小寫字母組成. 如果能在字典中找到這個單詞, 請輸出1, 否則, 輸出0.對於這種小事gzs覺得很是無聊, 你快來寫個程式幫幫他吧. 輸入

第一行包含乙個整數t(t <= 1000), 表示測試資料的組數.

每組測試資料的第一行有兩個整數n(0 < n < 1000) 和m (0 < m < 1000), 

分別表示字典中單詞的數目和待查詢的單詞的數目

接下來n行, 代表字典中的單詞, 每個單詞由小寫字母和'?'以及'*'組成, 單詞長度不超過6.

接下來m行, 代表待查詢的單詞, 每個單詞由小寫字母組成, 單詞長度不超過20. 輸出

每組資料輸出兩行

第一行 case #x:, x表示組數編號,從1開始.

第二行 對於每個待查詢的單詞, 如果存在於字典中, 則輸出1, 否則, 輸出0.

樣例輸入1

複製

2

2 3*

?abjaba

3 4ab?d

a*eabc

abcd

abcde

axae

樣例輸出1

case #1:

111case #2:

建立字典書,把可能查到的單詞存到字典樹上,後面直接查詢。

#include #include #include #include #include #include #include using namespace std;

typedef struct treetree;

tree * createtreenode()

bool isover(char str)

void renewtree(tree * pcur,char str)

int x;

if(str[0] == '?') x = 26;

else if(str[0] == '*') x = 27;

else x = str[0] - 'a';

if(pcur->next[x] == null)

pcur->next[x] = createtreenode();

pcur->over = isover(str) || pcur->over; // 在原來的基礎上更新是否結束。

renewtree(pcur->next[x],str+1);

}bool yes;

void enqurytree(tree * pcur, char str)

int x = str[0] - 'a';

if(pcur->next[26])

enqurytree(pcur->next[26] , str+1);

if(pcur->next[x])

enqurytree(pcur->next[x] , str+1) ;

if(pcur->next[27])

}int ans [1010];

int main()

int k = 0;

for(int i = 0; i < m;i++)

printf("case #%d:\n",c++);

for(int i = 0; i < k; i++)

printf("%d",ans[i]);

printf("\n");

}return 0;

}

qduoj GZS與古英文本典

題意 中文題思路 構造字典樹,注意標註最後終止條件!ps 學弟問我,做了一上午都wa,感覺大一白學了t t,還好最後現看了看模板調處來了!include include include include includeusing namespace std typedef struct tree tr...

4 字典與字典練習

python中字典 dict 的詳解 python中的字典是python的一種資料結構,它的本質是key和value以及其對應關係的一種集合,乙個key可以對應乙個多個value。合理的使用字典能給我們程式設計帶來很大的方便。字典的 key 不能變 vaues 可變 字典 是雜湊表 無序的。字典的方...

字典樹 與 01字典樹

字典樹可以降低空間複雜度 01字典樹可以降低時間複雜度。字典樹 又稱單詞查詢樹,trie樹,是一種樹形結構,是一種雜湊樹的變種。典型應用是用於統計,排序和儲存大量的字串 但不僅限於字串 所以經常被搜尋引擎系統用於文字詞頻統計。它的優點是 利用字串的公共字首來減少查詢時間,最大限度地減少無謂的字串比較...