hdu1251 字典樹的應用(查詢公共字首)
http://acm.hdu.edu.cn/showproblem.php?pid=1251
Problem Description
Ignatius最近遇到一個難題,老師交給他很多單詞(只有小寫字母組成,不會有重複的單詞出現),現在老師要他統計出以某個字串為字首的單詞數量(單詞本身也是自己的字首).
Input
輸入資料的第一部分是一張單詞表,每行一個單詞,單詞的長度不超過10,它們代表的是老師交給Ignatius統計的單詞,一個空行代表單詞表的結束.第二部分是一連串的提問,每行一個提問,每個提問都是一個字串.
注意:本題只有一組測試資料,處理到檔案結束.
注意:本題只有一組測試資料,處理到檔案結束.
Output
對於每個提問,給出以該字串為字首的單詞的數量.
Sample Input
banana
band
bee
absolute
acm
ba
b
band
abc
Sample Output
2
3
1
0
/**
hdu 1251 Tire樹(字典樹)的應用
解題思路:構造字典樹,查詢公共字首的個數,算是個模板吧
*/
#include <stdio.h>
#include <string.h>
#include <algorithm>
#include <iostream>
using namespace std;
struct node
{
int count;
node *childs[26];
node()
{
count=0;
for(int i=0;i<26;i++)
{
childs[i]=NULL;
}
}
};
node *root=new node;
node *current,*newnode;
void insert(char *str)
{
current=root;
int len=strlen(str);
for(int i=0;i<len;i++)
{
int m=str[i]-'a';
if(current->childs[m]!=NULL)
{
current=current->childs[m];
++(current->count);
}
else
{
newnode=new node;
++(newnode->count);
current->childs[m]=newnode;
current=newnode;
}
}
}
int search(char *str)
{
current=root;
int len=strlen(str);
for(int i=0;i<len;i++)
{
int m=str[i]-'a';
if(current->childs[m]==NULL)
return 0;
current=current->childs[m];
}
return current->count;
}
int main()
{
char str[20];
while(gets(str),strcmp(str,""))
{
insert(str);
}
while(gets(str)!=NULL)
{
printf("%d\n",search(str));
}
return 0;
}
相關文章
- ABC353E字典樹處理最長公共字首
- 字典樹的應用
- 字典樹(字首樹)簡單實現
- 最長公共字首
- 面試題:編寫一個函式來查詢字串陣列中的最長公共字首。 如果不存在公共字首,返回空字串 ""。(c++實現)面試題函式字串陣列C++
- ORACLE 樹形查詢(connect by...start with...)的應用(三)Oracle
- ORACLE 樹形查詢(connect by...start with...)的應用(一)Oracle
- 字首樹
- 查詢所有資料字典的SQLSQL
- 【PostgreSQL】 字首模糊查詢級優化SQL優化
- 14. 最長公共字首
- 14_最長公共字首
- B樹(多路查詢樹)
- 多路查詢樹
- 平衡查詢樹
- oracle 樹查詢Oracle
- 樹形查詢
- 查詢EBS應用版本
- 關於區間操作查詢(字首和與差分)+樹狀陣列基礎陣列
- B樹查詢,磁碟查詢資料
- 【Tire 求字典出現的字首個數】hihocoder 1014 Trie樹
- 字典樹練習(一)hihocoder 1014(求相同字首的數目)
- 二叉查詢樹的插入刪除查詢
- 演算法:最長公共字首演算法
- oracle樹形查詢Oracle
- 關於dataguard需要查詢的資料字典
- Trie樹,字典樹
- 字典樹
- LeeCode 14. 最長公共字首
- 每日leetcode——最長公共字首LeetCode
- 關於樹結構的查詢優化,及許可權樹的查詢優化優化
- 查詢|有序表折半查詢判定樹|二叉排序樹|3階B-樹排序
- 一個簡單的樹查詢
- 關於資料字典的查詢效率優化優化
- MySQL索引的最左字首原理與查詢的相關優化MySql索引優化
- 查詢二叉樹二叉樹
- mysql樹狀查詢(轉)MySql
- 二叉查詢樹