当前位置: 首页 > wzjs >正文

网站的页脚什么做网站页面怎么优化

网站的页脚什么做,网站页面怎么优化,seo博客教程,平台网站建设步骤问题关键:完成首次匹配之后需要继续进行模式匹配。 到这一步后,我们不能直接将j 0然后开始下一轮匹配,因为已经匹配过的部分(蓝色部分)中仍然可能存在与模式串重叠的子串: 解决办法: 找到蓝…

问题关键:完成首次匹配之后需要继续进行模式匹配。

 到这一步后,我们不能直接将j = 0然后开始下一轮匹配,因为已经匹配过的部分(蓝色部分)中仍然可能存在与模式串重叠的子串:
 

解决办法:

找到蓝色部分的最大相同前后缀,利用next数组,将 j 回溯到最大前缀的后一个位置开始与目标串进行第二轮匹配。

常见的next数组有两种:

1、当前字符对应的next值是不包括本身的最大相同前后缀字符数:

2、当前字符对应的next值是包括本身的最大相同前后缀字符数:

对于第二种情况,只需在第一轮匹配完成后,如果 i 没有到达目标串末尾,让 j = next[j - 1]即可。

对于第一种情况,则需要将next扩容一位,即next数组最后一位的值是整个模式串中最大相同前后缀的字符数,然后在第一轮匹配完成后,如果 i 没有到达目标串末尾,让 j = next[ j ]即可。
 

参考代码:
next数组是第二种情况
 

#include <iostream>
#include <vector>
#include <string>// 构建 next 数组
void computeNext(const std::string& pattern, std::vector<int>& next) {int m = pattern.length();int len = 0;int i = 1;next[0] = 0;while (i < m) {if (pattern[i] == pattern[len]) {len++;next[i] = len;i++;} else {if (len != 0) {len = next[len - 1];} else {next[i] = 0;i++;}}}
}// KMP 算法
std::vector<int> kmpSearch(const std::string& text, const std::string& pattern) {int n = text.length();int m = pattern.length();std::vector<int> next(m);std::vector<int> result;computeNext(pattern, next);int i = 0; // 文本串的索引int j = 0; // 模式串的索引while (i < n) {if (pattern[j] == text[i]) {j++;i++;}if (j == m) {result.push_back(i - j);j = next[j - 1];} else if (i < n && pattern[j] != text[i]) {if (j != 0) {j = next[j - 1];} else {i++;}}}return result;
}int main() {std::string text = "aaaaaaa";std::string pattern = "aaa";std::vector<int> positions = kmpSearch(text, pattern);if (positions.empty()) {std::cout << "未找到匹配的子串。" << std::endl;} else {std::cout << "匹配的起始下标为: ";for (int pos : positions) {std::cout << pos << " ";}std::cout << std::endl;}return 0;
}    

输出结果:

http://www.dtcms.com/wzjs/256858.html

相关文章:

  • html5国内网站建设网络优化培训要多少钱
  • 做一个购物网站要多少钱外包公司的优势和劣势
  • 如何把php做的网站做成app互动营销案例100
  • 个人创业众筹平台汕头seo快速排名
  • wordpress数据库名苏州网站建设优化
  • 书吧网站设计论文百度推广客户端app
  • 客户网站建设问题网址推荐
  • 做电商网站都需要学什么网络整合营销4i原则
  • 大连建设网煤气查询seo怎么才能做好
  • 网站推广营销收费网站流量查询
  • 温州网站设计方案我赢网seo优化网站
  • 政府网站英文域名注册黄页引流推广网站
  • 用wordpress做开发贵阳关键词优化平台
  • html5 做网站怎么网上宣传自己的产品
  • asp做静态网站个人网站推广
  • 产品做网站推广网络培训网站
  • godaddy怎么建设网站个人网页免费域名注册入口
  • 项目从立项到结束的流程图青岛设计优化公司
  • 做批发童车网站有哪些电话营销系统
  • 做网站数据库互联网推广引流公司
  • 建筑网站搜图发布项目信息的平台
  • 网页隐藏网站代码做一个公司网页多少钱
  • 怎么免费制作一个企业网站企业网站设计毕业论文
  • 新手如何做自己的网站新站seo快速排名 排名
  • 网站建设需要服务器吗网站域名注册
  • php 做网站 python8大营销工具指的是哪些
  • 信息安全网站建设方案书适合中层管理的培训
  • ios移动网站开发企业网站推广可以选择哪些方法
  • 网站建设 中企动力南昌0792太原百度网站快速排名
  • 做网站设计的网站关键词搜索技巧