首页 > 其他分享 >[学习笔记] 字典树

[学习笔记] 字典树

时间:2024-12-24 18:32:07浏览次数:4  
标签:单词 int texttt 笔记 学习 查找 节点 字典

https://blog.csdn.net/qq_49688477/article/details/118879270 字典树图文详解

就是根据“查字典”的思想使用 c++ 实现罢了。

比如要查一个单词 \(\texttt{fAKe}\),先在根节点中查找 \(\texttt{f}\),找不到则没有这个单词。找到了就来到 \(\texttt{f}\) 的节点往下查找 \(\texttt{A}\),以此类推就好了。同样,也可以查找这个单词是否属于另一个单词的前缀。

#include<bits/stdc++.h>
using namespace std;
int trie[100010][210],id;
void insert(string st)
{
	int res=0;
	for(int i=0;i<st.size();i++)
	{
		if(trie[res][st[i]]==0)
			trie[res][st[i]]=++id;
		res=trie[res][st[i]];
	}
}
bool find(string st)//这里的查找是前缀依旧可行的
{
	int res=0;
	for(int i=0;i<st.size();i++)
	{
		if(trie[res][st[i]]==0)
			return false;
		else res=trie[res][st[i]];
	}
	return true;
}
int main()
{
	insert("fuckccf");
	cout<<find("fuck");
	return 0;
}

标签:单词,int,texttt,笔记,学习,查找,节点,字典
From: https://www.cnblogs.com/WindChime/p/18628467

相关文章

  • [学习笔记] 根号分治
    https://www.cnblogs.com/guanlexiangfan/p/15553329.htmlhttps://blog.csdn.net/qq_35684989/article/details/127190872放一下讲得比较好的根号分治。根号分治,一般将数据分为\(a<\sqrtn\)的与\(a>\sqrtn\)的进行分类讨论。一般可以配合预处理将\(O(n^2)\)的做法优化......
  • [学习笔记] 线性筛与欧拉函数
    一线性筛主要讲下思想,埃氏筛法就是用所有质数标记所有倍数,这样的时间复杂度是\(O(n\logn\logn)\),有两只\(\log\)。可是我不想要\(\log\),于是欧拉筛:改进:存下质数表。对于每一个数,只标记自己与不超过自己最小质因子的数的乘积,对于质数表\(2,3,5\),循环到\(i=6\)时,只筛去\(......
  • [学习笔记] 网络流
    网络流,梳理一下然后看下trick。网络流主要难点在于建模,网络流很多trick现在已经很难有新意了。很多很好想的都是紫题,没啥含金量啊。最大流在残量网络中找到一条路径,设边集为\(u\),要求满足\(\min_{x\inu}C_x≠0\),即每条边残量皆不为\(0\)。此时将这条路径流满,流量就......
  • 【学习笔记】平衡树
    介绍平衡树是一种特殊的二叉树搜树,他能在被修改后,依靠分裂,合并,等操作使得树能始终保持平衡(每一个节点的两棵子树的大小尽量相等),这里主要讲解FHQtreap。操作FHQtreap也叫无旋treap,他的每个节点有两个值\(val,pri\),其中\(pri\)满足二叉堆的性质,而\(val\)满足BST的性质......
  • 从实战的角度分析渗透测试究竟需要学习了解的知识点,黑客技术零基础入门到精通教程建议
    前言最近有很多人询问,自己明明OWASPTop10都学的差不多了,各种靶场也复现的差不多了,Burpsuite、goby、awvs、dirsearch等等工具也是用的丝滑,但为什么就是感觉挖不到洞呢基础知识已经准备的差不多了,现在可能缺乏的是挖洞时间的思路,针对特定场景下的渗透套路,这个一般可以学......
  • 机器学习:线性回归:最小二乘法应用一元线性回归(持续更新)
    目录前言(基础知识的准备最小二乘法在回归中的应用)利用最小二乘法解决最简单的一元线性回归问题第一步:引入必要的库并且创建数据集(这里使用的例子是房价与面积的关系)第二步利用某些方法去用一条直线去拟合你的数据第三步观察与测评求出的W,B值与数据集的拟合程度并且......
  • 机器学习:线性回归:梯度下降法应用多元线性回归(持续更新)
    目录第二节梯度下降法在线性回归中的应用情景带入这里提出误差函数即残差函数的概念:我们这里采用MSE损失函数来刻画预测值与真实值之间的误差大小下面是基于梯度下降法求解线性回归方程中参数(θ)(θ)的推导过程:于是我们重复的过程是:我们先观察各个特征数据与房价的......
  • 常见的机器学习算法,包含监督学习、无监督学习、半监督学习和强化学习
    一、监督学习算法(约70个)线性回归(LinearRegression)简单线性回归:用于建立一个自变量和一个因变量之间的线性关系,例如根据房屋面积预测房价,其模型表达式为\(y=\beta_0+\beta_1x+\epsilon\),其中\(y\)是因变量(房价),\(x\)是自变量(房屋面积),\(\beta_0\)和\(\beta_1\)是模型参数,\(\ep......
  • 功能全面的跨平台笔记应用:Joplin,开源替代印象笔记与 OneNote
    随着我们在日常学习、工作和生活中对笔记工具的依赖日益增加,一款功能强大且支持跨平台的笔记应用显得尤为重要。这是一款能够替代印象笔记和OneNote的开源平替Joplin,是一款功能全面的跨平台笔记应用。Joplin是一款支持多平台的开源笔记应用,具有简洁、强大的功能,支持......
  • 机器学习全解析:基础概念、任务类型、算法模型、应用及未来挑战与走向
    一、引言机器学习作为人工智能领域的核心分支,旨在让计算机系统从数据中自动学习模式和规律,以实现对未知数据的预测和决策。在当今数字化时代,机器学习已经广泛应用于各个领域,从图像识别、语音识别到金融预测、医疗诊断等,为解决复杂问题提供了强大的工具和方法。二、机器学习基础......