2022-01-25

1.字符串匹配BM算法

在文本中查找字符串匹配算法,坏字符串规则和好后缀规则
坏字符串规则:

image.png

从后往前匹配,第一个不匹配的字符叫做坏字符。如果本次不匹配,下次匹配下滑的位数为Si-Xi。S是第一个不匹配字符在查找串的位置。Xi是坏字符在查找串靠后的一个,如果不存在Xi=-1。Si-Xi可能为负数,比如字符串为aaaaaaaa,查找串为baaaa,那么Si=0,Xi=1。
好后缀规则:
image.png

字符串从后往前匹配,遇到第一个坏字符串,如果位置从后往前数第三位,好后缀为后2位。这时候查看bc在查找字符串中是否还有靠后的另外一个匹配,示例中是u,这个时候将字符串滑动N位,让u与u对齐。如果查找不到,查找串头部与u匹配最长子串,如下图是一位c。
image.png

2.字符串匹配KMP算法

image.png

--
字符串从前往后匹配,遇到第一个坏字符,位置为j。查找好前缀里面最长后缀子串(这个子串与查找字符串里面的前缀子串匹配),假设这个子串长度为k,那么字符串滑动位数为j-k

3.Trie树(字典树,前缀树)

搜索引擎提示是怎么实现的呢,比如输入h提示her,hello等。


image.png

节点如何存储下游节点数据,假设只有26个字符,节点定义如下:
Class TrieNode {
char data;
TrieNode children[26];
}
children[0]放值为a的子节点,以此类推。 通过下标与子节点固定的模式存储。 缺点,浪费内存

4.AC自动机

一般网站留言都有敏感词过滤,替换成***,是怎么实现的呢
敏感词构建成一棵Trie树,需要查找敏感词的文本从第一个字符开始在Trie树中匹配,到最后一个不匹配的字符(不是敏感字符)或者到叶子节点(是敏感字符)结束。然后从下一个位置开始匹配。如何加快这个匹配速度,需要构建一个快速挪到的算法,这个没看懂,构建好之后就是AC自动机了。

5.贪心算法

一组数据,定义了限制值和期望值,选出一些数据,满足限制值的情况下,期望值最大。比如限制背包是100kg,挑选各种豆子最后豆子金额最大。
霍夫曼编码压缩原理:1000个字符的文件,如何压缩空间最小。 这个限制值是1000,期望值是空间最小。1000个字符串正常是8000空间,因为一个字符是8位,假设这1000个字符串只包含6个字符,其实一个字符用3位表示即可。现在要先找出有多少字符和每个字符有多少个。最多的字符用1位表示1,第二多字符用2位表示01,第三多字符用3位001表示,依次类推。保证每一个都不是另外一个的前缀,依次保证翻译不会冲突。

6.分治算法

用分治算法满足的条件:子问题和原问题有相同的模式,子问题可以独立求解,具有终止条件(问题足够小可以直接求解),可以把子问题合并成原问题且合并代价不高

7. 回溯算法

0-1背包问题,正则匹配


image.png

8.动态规划

我们把问题分解为多个阶段,每个阶段对应一个决策。我们记录每一个阶段可达的状态集合(去掉重复的),然后通过当前阶段的状态集合,来推导下一个阶段的状态集合,动态地往前推进
0-1背包问题,0-1背包升级版
理论:
一个模型三个特征
模型:多阶段决策最佳解模型,动态模型一般用于解决最优解问题,而解决问题的过程,需要经历多个决策阶段。每个决策阶段对应一组状态,我们寻找一组决策序列,经过这组决策序列可以产生期望的最优解
三个特征:
1.最优子结构:问题最优解包含子问题最优解,后面的状态可以通过前面的状态推导出来
2.无后效性:推导某一个阶段状态只关心前一个阶段的状态,某阶段状态确定后,后续阶段不影响本阶段的状态
3.重复子问题
不同决策序列,到达相同阶段会产生重复的状态。

9.

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,657评论 6 505
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,889评论 3 394
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,057评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,509评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,562评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,443评论 1 302
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,251评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,129评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,561评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,779评论 3 335
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,902评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,621评论 5 345
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,220评论 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,838评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,971评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,025评论 2 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,843评论 2 354

推荐阅读更多精彩内容

  • qcwk001这串字符是什么意思,有没有人知道呀 +
    千创微课知识付费阅读 172评论 0 0
  • sql介绍 常用sql分类 数据类型 表熟悉 字符集 数据类型 作用 保证数据的准确性和标准性 种类 数值类型 时...
    R_Min阅读 356评论 0 0
  • 寒假已经一周多了,但小宝的寒假生活还没有上入正轨,晚睡晚起,生活没有了规律,而且学习处于停滞的状态。 而我知道,寒...
    简_丹生活阅读 285评论 1 1
  • 1.基础数据结构类型 (1)线性结构 数组、链表、栈、队列 (2)非线性结构 树、图 2.数据结构变体 数组扩展:...
    ack_Finding阅读 1,890评论 0 0
  • 程序员面试宝典 一、C++ 基础 1. 位运算 返回x二进制数中的1的个数? 返回x,y的平均值? 返回绝对值?...
    小任同学an阅读 1,194评论 0 0