【恋上数据结构】串匹配算法,Java面试大全pdf

  • KMP

    • 蛮力 vs KMP

    • KMP – next表的使用

    • KMP – 核心原理(构造next表)

      • 真前缀后缀的最大公共子串长度

      • 构造 next 表

      • -1的精妙之处

    • KMP – 主算法代码实现

    • KMP – 为什么是“最大“公共子串长度?

    • KMP – next表的构造思路及实现

    • KMP – next表的不足之处

    • KMP – next表的优化思路及实现

    • KMP – next表的优化效果

    • KMP – 性能分析

    • KMP完整源码

  • 蛮力 vs KMP

  • Boyer-Moore

    • 坏字符规则(Bad Character)

    • 好后缀规则(Good Suffix)

    • BM算法最好情况与最坏情况

  • Karp-Rabin / Rabin-Kary

  • Sunday

数据结构与算法笔记恋上数据结构笔记目录

串(前缀、后缀)

===========================================================================

本课程研究的是开发中非常熟悉的字符串,是由若干个字符组成的有限序列

在这里插入图片描述

字符串 thank前缀(prefix)、真前缀(proper prefix)、后缀(suffix)、真后缀(proper suffix)

在这里插入图片描述

串匹配算法

========================================================================

  • 查找一个模式串(pattern)在文本串(text)中的位置:

String text = "Hello World";

String pattern = "or";

text.indexOf(pattern); // 7

text.indexOf(pattern); // -1 

几个经典的串匹配算法:

  • 蛮力(Brute Force)

  • KMP

  • Boyer-Moore

  • Karp-Rabin / Rabin-Karp

  • Sunday

下面用 tlen 代表文本串 text 的长度,plen 代表模式串 pattern 的长度;

蛮力(Brute Force)

==================================================================================

  • 以字符为单位,从左到右移动模式串,直到匹配成功 ;

    在这里插入图片描述

    蛮力算法有 2 种常见实现思路:

蛮力1 – 执行过程 + 实现


在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值