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

网页免费模板下载网站关键词优化互点

网页免费模板下载,网站关键词优化互点,深圳公司网站建设哪里专业,常德建设工程信息网我们为什么需要KMP#xff1f; 在字符串匹配问题中#xff0c;我们需要找到匹配串pattern在原串text中的位置#xff0c;一种显而易见的思路就是暴力匹配#xff0c;如图所示#xff0c;我们把pattern放置到text中的每个位置进行比较即可。 但是大家可以发现#xff0c;…我们为什么需要KMP 在字符串匹配问题中我们需要找到匹配串pattern在原串text中的位置一种显而易见的思路就是暴力匹配如图所示我们把pattern放置到text中的每个位置进行比较即可。 但是大家可以发现这种方式的时间复杂度太高了达到了O(pattern.length * text.length)我们是否可以进一步进行优化呢在第一次匹配时abaa和abab的最后一个字符不匹配前面aba都匹配好了移动了一位之后发现前面又匹配不上了这次移动相当于多此一举。换句话说我们每次移动应当让前面仍然保持匹配状态直接比较后面的位置。 本例中应当直接移动两位让aaab和abaa比较这也就是KMP的基本思想了。 基础知识 求匹配数组maxMatchLens 那么我们如何做到在移动的过程中保证前面的匹配状态呢下图可以清晰地描述 发生匹配错误的字符为c左端为abab在移动的时候要保证真前缀和真后缀相等且长度最大选了较小的会忽略可能正确的结果对于abab 真前缀a ab aba 真后缀b ab bab 也就是说我们需要找到pattern中所有位置相匹配的真前缀与真后缀中最长的字符串的长度这也就是我们经常听到的next数组了这里我们用maxMatchLens来表示如下图所示的例子中假设我们已经求出来前面所有的值了最后一个值如何求解呢 举例 第五位 c c各参数取值Value c1Value c2Value c3currentLen210pattern.charAt(currentLen)abai444pattern.charAt(i)ccc处理1.while字符不相等1.while字符不相等3.赋值 maxMatchLens[4] currentLen0; private int[] getMaxMatchLens(String pattern) {int[] maxMatchLens new int[pattern.length()];int currentLen 0;for (int i 1; i pattern.length(); i) {while (currentLen 0 pattern.charAt(i) ! pattern.charAt(currentLen)) {currentLen maxMatchLens[currentLen - 1];}if (pattern.charAt(i) pattern.charAt(currentLen)) {currentLen;}maxMatchLens[i] currentLen;}return maxMatchLens; } KMP匹配 返回起始坐标 text里面找pattern 匹配的思路与求maxMatchLens的思路基本一致即按照最长、次长的顺序进行移位匹配代码如下 private ListInteger search(String text, String pattern) {ListInteger res new ArrayList();int[] maxMatchLens getMaxMatchLens(pattern);int j 0;for (int i 0; i text.length(); i) {while (j 0 text.charAt(i) ! pattern.charAt(j)) {j maxMatchLens[j - 1];}if (pattern.charAt(j) text.charAt(i)) {j;}if (j pattern.length()) {res.add(i - j 1);j maxMatchLens[j - 1];}}return res; } 参考链接https://leetcode-cn.com/problems/longest-happy-prefix/solution/ni-zhen-de-li-jie-kmpma-jiao-ni-xun-su-zhang-wo-bi/ 参考链接https://blog.csdn.net/V_0617/article/details/79114860
http://www.zqtcl.cn/news/269020/

相关文章:

  • 广州建设档案馆网站稿定设计app免费版官方
  • 橙色企业网站源码建设工程投标文件在哪个网站有发布
  • 服务器可以做网站吗深圳高端网站建设创新
  • 企业平台网站建设方案大连网络广告
  • 如何给网站做宣传新手怎么建立自己网站
  • 酒店和网站对接如何做开发网站那个好
  • 北京建设信源咨询有限公司网站快对小程序入口
  • 湖北人工智能建站系统软件城乡建设官网
  • 广东模板建站平台设计网站
  • 晋江市住房和城乡建设网站二进制可以做网站是吗
  • 企业网站优化的方式网站开发 -(广告)
  • 素材解析网站搭建wordpress 提问
  • 域名解析网站安卓android系统下载
  • 相亲网站做推广的照片是谁广告优化师前景
  • 营销导向的网站建设的主要流程陕煤建设集团网站
  • 电商网站销售数据分析网页美工设计实训报告
  • 百度新网站收录wordpress免刷新插件
  • 如何做好网站外链c#+开发网站开发
  • 展示型网站报价网站目录创建下载链接
  • cloudflare做侵权网站建设网站需要什么知识
  • 软装设计公司名称怎样给网站做优化
  • 如何判断网站是用什么程序做的云南网站建设公司
  • 清远市建设局官方网站软件开发工程师发展前景
  • 韩国做hh网站图片转链接生成器在线
  • 有凡客模版怎么建设网站百度网盘在线观看资源
  • 网站关键字统计龙岩龙硿洞
  • 成都哪个网站建设比较好建设工程交易服务中心
  • 怎么做好网站推广小笨鸟跨境电商平台
  • 建立一个网站需要多少钱?制作ppt模板的软件
  • 百度 手机网站 友好性青岛谷歌优化