B. Azamon Web Services(两种解法)

本文探讨了两种优化的字符串匹配算法,一种是O(n^2)的预处理算法,通过查找字符串中每个位置后的最小字母来降低复杂度;另一种是O(nlog(n))的算法,通过对字符串排序并比较差异,实现更高效的匹配过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

传送门哈哈哈哈

先 说 一 下 O ( n 2 ) 的 做 法 先说一下O(n^2)的做法 O(n2)

从 前 往 后 匹 配 从前往后匹配

当 前 字 母 较 小 时 , b r e a k , 成 功 \color{Green}{当前字母较小时,break,成功} ,break,

当 前 字 母 相 等 时 , 去 后 面 找 一 个 更 小 的 字 母 \color{Red}当前字母相等时,去后面找一个更小的字母 ,

找 到 就 成 功 , 找 不 到 就 算 了 \color{Red}找到就成功,找不到就算了 ,

当 前 字 母 较 大 时 , 一 定 要 去 后 面 找 更 小 的 字 母 \color{orange}当前字母较大时,一定要去后面找更小的字母 ,

找 到 更 小 的 就 成 功 , 只 能 找 到 相 等 的 就 标 记 已 经 找 过 字 母 找到更小的就成功,只能找到相等的就标记已经找过字母 ,

下 次 匹 配 时 不 进 行 替 换 字 母 的 尝 试 下次匹配时不进行替换字母的尝试

当 然 可 以 通 过 预 处 理 后 i 字 母 中 最 小 字 母 降 低 复 杂 度 当然可以通过预处理后i字母中最小字母降低复杂度 i

还 有 O ( n l o g ( n ) ) 的 \color{Red}{还有O(nlog(n))}的 O(nlog(n))

对 a 串 排 序 , 排 序 后 为 b 串 对a串排序,排序后为b串 a,b

然 后 找 到 a 和 b 第 一 个 不 相 等 的 位 置 然后找到a和b第一个不相等的位置 ab

然 后 提 示 我 们 应 该 在 这 个 位 置 放 b 串 的 字 母 然后提示我们应该在这个位置放b串的字母 b

于 是 去 后 面 找 的 这 个 字 母 的 索 引 , 交 换 . 于是去后面找的这个字母的索引,交换. ,.

这 样 就 得 到 了 理 论 最 小 的 串 a , 再 和 目 标 串 比 较 . 这样就得到了理论最小的串a,再和目标串比较. a,.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值