zoukankan      html  css  js  c++  java
  • 短链接及关键字过滤ac自动机设计思路

    =============:短链接设计思路:
    核心:将长字符转为短字符串并建立映射关系,存储redis中。
    1.使用crc32转换为Long

    2.hashids将long encode为最短字符串。作为短连接后缀,

    ==========关键字过滤设计思路:
    1.将关键字列表中每个关键字字符转换为字典树,利用ac自动机算法匹配.
    --备注:
    KMP算法:查找模式串中最长相同的前缀和后缀的最长长度。即next[j]的值,失配索引j-next[j]=移动位数.
    字典树:将目标串按字符串起来,相同前缀则共享前缀,不相同,则从root,重新建立。可以用来判断一个串是否是p(模式串)中的前缀:
    ac自动机:失配(fail)的指针指向字典树的最长后缀节点,如果没有就找第二长的后缀。如果再没有就指向root. 这样能够线性的去匹配所有的模式串.

  • 相关阅读:
    live-server
    vue-插槽
    100%的背影
    Luogu P3243 菜肴制作
    CF512E Fox And Polygon
    BZOJ2523/LOJ2646 聪明的学生
    Luogu P3959 宝藏
    Luogu P2280 激光炸弹
    ACAG 0x02-8 非递归实现组合型枚举
    ACAG 0x02-4 费解的开关
  • 原文地址:https://www.cnblogs.com/guozefeng/p/7217697.html
Copyright © 2011-2022 走看看