- 博客(30)
- 问答 (2)
- 收藏
- 关注
原创 倒排索引:搜索引擎背后的秘密
倒排索引是一种把内容映射到关键词的索引形式。在文档搜索中,倒排索引会列出某个词项出现在哪些文档中,使得我们可以快速定位包含特定词汇的文档集。这种方法与传统的"正排索引"(从文档到内容的映射)相对,因此称为倒排索引。"我喜欢编程""编程是一种艺术""我喜欢艺术"倒排索引会将这些文档中的每个词汇提取出来,然后构建词汇到文档的映射关系。
2024-10-25 16:48:14
876
原创 tire树代码示例和例题
给定n个模式串s1s2sn和q次询问,每次询问给定一个文本串ti,请回答s1∼sn中有多少个字符串sj满足ti是sj的。一个字符串t是s的前缀当且仅当从s的末尾删去若干个(可以为 0 个)连续的字符后与t相同。输入的字符串大小敏感。例如,字符串Fusu和字符串fusu不同。
2023-04-07 20:37:12
202
原创 KMP字符串匹配算法
KMP算法(Knuth-Morris-Pratt Algorithm)是一种高效的字符串匹配算法,用于在一个较长的文本串中查找特定的子串。KMP算法的时间复杂度为O(n+m),其中n为文本串的长度,m为子串的长度。相比于朴素的字符串匹配算法,KMP算法更加高效。
2023-04-07 19:14:46
325
原创 滑动窗口/单调队列
滑动窗口和单调队列是两种常见的数据结构和算法技巧,它们可以解决一些特定类型的问题。下面分别介绍它们的概念和作用:滑动窗口是一种用于处理数组(或列表)的算法技巧。它通常用于解决连续子数组问题,如找到数组中的最大或最小子数组。滑动窗口的大小和位置可以根据问题的要求调整。在处理问题时,窗口在数组中从左到右滑动,每次滑动一定的距离,然后在当前窗口内进行相关计算。滑动窗口的优点是可以减少重复计算,降低时间复杂度。例如,在计算数组中的最大子数组和时,我们可以用滑动窗口避免每次都从头开始计算和。单调队列是一种特殊的数据
2023-04-07 16:36:55
794
原创 python数字类型相关操作及复数表示
python数字类型相关操作常见的操作即+,-,*,/,这里就不多说了,但要注意python中的/不是整除,下面我们说一些其他的对数字类型的操作1.//(地板除)之所以叫地板除是因为它对结果向下取整,而不是简单的截去小数本分,这里需要注意示例:>>> 3//21>>> -3//2-2从结果我们可以看到结果是向下取整2.%(求模运算)即求两个数相除的余数,如9%5=4,即9模5得4>>> 9%5
2022-01-22 23:44:11
3882
原创 python生成随机数
python生成随机数利用python生成随机数需要先导入random模块,之后利用random模块生成随机数。利用random模块的几个函数可以生成整数,浮点数如下:import randomprint(random.randint(1,10))#生成一个1到10之间的整数print(random.random())#没有参数的话生成一个0到1之间的浮点数randomprint(random.uniform(7,4))#生成两个数之间的浮点数,前后两个参数无大小要求print(random
2022-01-21 16:33:05
7926
原创 python变量和字符串
1、变量(1)变量名不能以数字开头(2)变量名区分大小写(3)变量名可以用汉子(4)x,y=y,x可以实现x,y值互换2、字符串(1)用单引号或者双引号将内容引起(2)用单还是双取决于字符串中有没有不可避免的单或双引号,以免系统误会(3)是在不能避免单双引号冲突时,可以用转义字符代替【加上去\即可转义】示例:= ; \=\ ; \n=换行 ;(4)原始字符串:转义字符需要正常使用,不作为转义字符时,可以在前面加上r,表示原始字符串,转义不生效示例:print(rD:\wenjianji
2022-01-21 11:28:40
689
原创 指针与常量
文章目录指针与常量一、const 说明符作用二、指针常量指针常量三、常量指针四,指向常量的指针常量(常量指针常量)指针与常量一、const 说明符const 为指定说明符(也称为常类型说明符),使用指定时,程序执行的过程中指定的内容不能被改变(冻结、限定)。即一次初始化后,指定的内容始终不变。作用定义一般常量使用const 说明常量:int const x=2; 或const int x=2;x++;(错误)定义或说明一个常数组: double const a[2]={1..
2021-03-22 16:49:53
221
原创 单链表的创建,打印,释放,删除指定节点
*单链表的创建,打印,释放,删除指定节点// struct cell { //单链表结点结构体定义 int x; struct cell* next;};创建单链表struct cell* build(void) { //新建单链表,并将建好的单链表首结点地址返回 struct cell* head,*tmp,*p; head = tmp = p = NULL; int n; scanf("%d",&n); if(n==0)//输入的数据以0结束 return
2020-12-27 23:35:49
500
1
基于蒙特卡洛搜索的不围棋AI示例
2023-04-07
JLU计算机组成原理期末简答题汇总
2022-01-21
@WebServle注解失效,报404
2022-04-04
juypter notebook运行代码后完全没反应,该怎么办。
2021-10-30
TA创建的收藏夹 TA关注的收藏夹
TA关注的人