前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >统计难题 【 HDU - 1251 】【 字典树 】

统计难题 【 HDU - 1251 】【 字典树 】

作者头像
Lokinli
发布2023-03-09 19:13:26
1480
发布2023-03-09 19:13:26
举报
文章被收录于专栏:以终为始以终为始

 统计难题

HDU - 1251 

简单字典树。

代码语言:javascript
复制
#include <iostream>
#include <string.h>

using namespace std;

struct node {
    int num;
    struct node *next[26];
    node(){
        for(int i = 0; i < 26; i ++) {
            next[i] = NULL;
        }
        num = 0;
    }
};
void Insert(char word[], struct node *root)
{
    struct node *p = root;
    for(int i = 0; word[i] ; i ++)
    {
        if(p -> next[word[i] - 'a'] == NULL)
            p -> next[word[i] - 'a'] = new node;
        p = p -> next[word[i] - 'a'];
        p -> num ++;
    }
}
int fin(char word[], struct node *root)
{
    struct node *p = root;
    for(int i = 0; word[i] ; i ++)
    {
        if(p -> next[word[i] - 'a'] == NULL) return 0;
        p = p -> next[word[i] - 'a'];
    }
    return p -> num;
}
int main()
{
    char word[15];
    struct node *root;
    root = new node;
    while(cin.getline(word,12)){
        if(strlen(word)==0 || word[0]==' ')
            break;
        Insert(word,root);
    }
     while(scanf("%s",word)!=EOF){
        printf("%d\n",fin(word, root));
    }
    return 0;
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019-01-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  •  统计难题
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档