当前位置: 首页 > article >正文

【字符串】字典树

字典树就是利用一个这样的树状结构,可以记录字符串有没有出现过
在这里插入图片描述
放个板子

int nxt[100000][26], cnt;
bool st[100000]; // 该结点结尾的字符串是否存在
void insert(string s, int l) // 插入字符串,l是字符串长度
{ 
	int p = 0;
	for (int i = 0; i < l; i++)
	{
		int c = s[i] - 'a';
		if (!nxt[p][c]) nxt[p][c] = ++ cnt; // 如果没有,就添加结点
		p = nxt[p][c];
	}
	st[p] = true;
}
bool find(string s, int l) // 查找字符串,l是字符串长度
{
	int p = 0;
	for (int i = 0; i < l; i++)
	{
		int c = s[i] - 'a';
		if (!nxt[p][c]) return 0;
		p = nxt[p][c];
	}
	return st[p];
}

http://www.kler.cn/a/228972.html

相关文章:

  • AUTOSAR从入门到精通-无人驾驶网约车(Robotaxi)
  • 【王树森搜索引擎技术】概要01:搜索引擎的基本概念
  • 快手极速版如何查找ip归属地?怎么关掉
  • 黑马Java面试教程_P1_导学与准备篇
  • 函数(函数的概念、库函数、自定义函数、形参和实参、return语句、数组做函数参数、嵌套调用和链式访问、函数的声明和定义、static和extern)
  • springboot如何解析 Map 的泛型信息来确定要注入哪些 Bean?
  • flutter 操作mysql
  • 深入理解TCP网络协议(3)
  • Ubuntu下的磁盘管理,分区管理,挂载和卸载分区
  • 普通编程,机器学习与深度学习
  • 力扣 121. 买卖股票的最佳时机
  • MySQL 小技巧:xtrabackup 软件包的下载及安装
  • 【C/C++ 12】C++98特性
  • React Hook之钩子调用规则(不在循环、条件判断或者嵌套函数中调用)
  • 「效果图渲染」效果图与3D影视动画渲染平台
  • vue3 之 组合式API—reactive和ref函数
  • Linux系统安全①iptables防火墙
  • 【华为】GRE Over IPsec 实验配置
  • Python爬虫urllib详解
  • 格式化日期注解@JsonFormat的使用和TimeZone时区问题
  • 市场复盘总结 20240205
  • redis stream结合springboot构造简单消息队列
  • Ubuntu 22.04 上安装和使用 Go
  • java数组学习
  • 如何避免缓存雪崩发生?
  • 进程和线程的区别详解