高效存储和查找字符串的数据结构

#include <bits/stdc++.h>
using namespace std;const int N = 10010;int Son[N][26];//存储下一个字符的行
int Count[N];//这个单词单词有多少个
int Pos;//当前新分配的存储位置
char szStr[N]; //读取字符串 void StringInsert(const char *pStr)
{int p = 0;for(int i = 0; pStr[i]; i++){int CharMap = pStr[i] - 'a';//将该字符映射到0-25 if(!Son[p][CharMap])//如果当前行的该字符不存在  {Son[p][CharMap] = ++Pos;}p = Son[p][CharMap];//p移动到存储下一个字符的行 }Count[p]++;//这个单词有多少个
}int StringQuery(const char *pStr)
{int p = 0;for(int i = 0; pStr[i];i++){int CharMap = pStr[i] - 'a';if(!Son[p][CharMap]){return 0;}p = Son[p][CharMap];}return Count[p];
} int main(int argc, char** argv)
{int nTime;scanf("%d",&nTime);while(nTime--){char szOp[2];scanf("%s%s",szOp,szStr);if('Q' == szOp[0]){printf("%d\n",StringQuery(szStr));}else{StringInsert(szStr);}}return 0;
}

此处是我看的一个博客,里面有图详细解释,虽然博客中有少许错误

Trie字典树数组实现相关推荐

  1. Trie(字典)树详解

    什么是Trie(字典)树 顾名思义,这棵树和字典类似,通过百度我们又能知道Trie树是一种树形结构,是一种哈希树的变种.典型应用是用于统计,排序和保存大量的字符串(但不仅限于字符串),所以经常被搜索引 ...

  2. 数据结构与算法(十一)Trie字典树

    本文主要包括以下内容: Trie字典树的基本概念 Trie字典树的基本操作 插入 查找 前缀查询 删除 基于链表的Trie字典树 基于Trie的Set性能对比 LeetCode相关线段树的问题 Lee ...

  3. C语言实现Trie字典树 (附完整源码)

    实现Trie字典树 TrieNode结构体 实现实现Trie字典树的完整源码(定义,实现,main函数测试) TrieNode结构体 typedef struct TrieNode {struct T ...

  4. POJ3764-The xor-longest Path【Trie(字典树)】

    正题 POJ题目链接:http://poj.org/problem?id=3764 其实loj也有题目:https://loj.ac/problem/10056 题目大意 一棵树,求两个点使他们的之间 ...

  5. dfa算法c语言,DFA跟trie字典树实现敏感词过滤(python和c语言)

    DFA和trie字典树实现敏感词过滤(python和c语言) 现在做的项目都是用python开发,需要用做关键词检查,过滤关键词,之前用c语言做过这样的事情,用字典树,蛮高效的,内存小,检查快. 到了 ...

  6. 提高篇 第二部分 字符串算法 第3章 Trie字典树

    Trie(字典树)解析及其在编程竞赛中的典型应用举例 - Reqaw - 博客园 『一本通』Trie字典树 - YeLingqi - 博客园 字典树(Trie Tree) - 仰望高端玩家的小清新 - ...

  7. LeetCode 208 实现 Trie (字典树)

    208 实现 Trie (字典树) 题目: 实现一个 Trie (前缀树),包含 insert, search, 和 startsWith 这三个操作. 示例: Trie trie = new Tri ...

  8. 原来以为(Trie)字典树很难,后来发现不久这么一回事嘛

    字典树 牛逼 什么是字典树 字典树,是一种空间换时间的数据结构,又称Trie树.前缀树,是一种树形结构(字典树是一种数据结构),典型用于统计.排序.和保存大量字符串.所以经常被搜索引擎系统用于文本词频 ...

  9. Trie(字典树) : 如何实现搜索引擎的关键词提示功能?

    文章目录 搜索中的关键词提示 Trie树的介绍 Trie树的实现 搜索的关键词提示 Trie树 VS 红黑树.哈希 搜索中的关键词提示 当我们在搜索引擎中进行搜索时,有时仅仅输入了搜索内容的一部分,搜 ...

  10. 字典树实现_【Leetcode每日打卡】单词的压缩编码 Trie(字典树)入门

    一.前言(鸡汤(一段废..话..可以跳过啦)) 同学们好!没想到我这个小小的公众号破千粉啦,对于大佬们而言或许不值一提,但是对我而言是一个莫大的鼓舞!更加坚定了我持续输出优质内容的决心.希望我们都能每 ...

最新文章

  1. stm32对c语言要求高吗?c语言什么水平可以学stm32?
  2. ISAPI_Rewrite3.1相关知识
  3. 二叉树的前序,中序,后序,层序遍历的递归和非递归实现
  4. vue2.0基础学习(1)
  5. conda(pip) bad interpreter的解决办法
  6. Ubuntu中搭建Hadoop2.5.2完全分布式系统(一)
  7. SpringBoot2.1.9 多MongoDB配置
  8. 工业交换机和工业路由器的区别
  9. 自定义URL Scheme完全指南
  10. 不是bug!百度集好运卡奖品追加8000个金猪
  11. python 运算符重载_《fluent python》第 13 章 正确重载运算符
  12. 对比学习视角:重新审视推荐系统的召回粗排模型
  13. SQL注入漏洞-POST注入
  14. MySQL基础知识,入门必备
  15. 大数据的价值,主要体现在哪几方面?
  16. 汉语语法与人工智能---数据结构+汉语语法
  17. 高仿富途牛牛-组件化(二)-磁力吸附
  18. Git学习笔记(二)——Git的分支管理、储藏和标签
  19. linux dup作用,linux dup()\dup2()函数
  20. 阻尼效果总结(顶部图片放大效果)

热门文章

  1. VMwear安装Centos7超详细过程
  2. springboot-redis读取配置文件
  3. Android Flutter实践内存初探
  4. scrapy模拟登录2018新版知乎
  5. Linux 按行分割文件(转载)
  6. Zabbix分布式监控系统使用总结
  7. Oracle Solaris 11 11/11 新增功能
  8. 重磅推出Android4开发系列精品课程
  9. autoflowchart软件使用步骤_【AutoFlowChart流程图自动生成软件】|C语言流程图生成工具(AutoFlowchart)下载_v1.0 中文版_9号软件下载...
  10. HTML中可伸缩容器怎么设置,CSS布局神器——伸缩盒(语法篇)