10 2020 档案

摘要:AC快乐机主要用于多个模式串与一个字符串做匹配 构建是将模式串构成一棵树 将文本串放在Trie上(构建方式同Trie),匹配的时候借用KMP的思想,从Trie上的某个点继续开始匹配 i匹配失败后继续从j开始匹配,j是i的Fail指针(失配指针) 首先,每个点i的Fail指针指向的深度一定比i小(Fa 阅读全文
posted @ 2020-10-14 19:43 我不秃 阅读(130) 评论(0) 推荐(0)
摘要:Trie 是一颗非典型的多叉树模型,每个节点的分枝数可能有多个 class Trie{ private: bool isEnd;//该节点是否是一个串的结束 Trie* next[26];//字母映射表 public: Trie(){ isEnd = false; memset(next, 0, s 阅读全文
posted @ 2020-10-12 14:55 我不秃 阅读(142) 评论(0) 推荐(0)
摘要:KMP算法 常用于在一个文本串s内查找一个模式串p出现的位置 查找字符串是否为子串 next[] 代表当前字符之前的字符串中,最大长度相同的前缀和后缀 next[j] = 0 或 -1 ,则跳到模式串的开头字符时间复杂度 O(m+n), 匹配复杂度 O(n), 计算next复杂度 O(n) KMP算 阅读全文
posted @ 2020-10-05 15:36 我不秃 阅读(142) 评论(0) 推荐(0)
摘要:字符串哈希:将字符串映射成为整数(p进制数,模q)并保证字符串不同,得到的哈希值不同,用来判断一个子串该串是否重复出现过 就是来求字符串是否相同或者包含的 经验:p取131、13331较好, q取2^64较好(unsigned long long) hash(i+1) = hash * p + st 阅读全文
posted @ 2020-10-04 17:16 我不秃 阅读(266) 评论(0) 推荐(0)