当前位置: 首页 > 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.yutouwan.com/news/502463/

相关文章:

  • 哪些网站可以在线做动图网页生成app制作
  • 毫州网站建设海口正规官网设计公司
  • app使用什么做的网站做网站需要编程嘛
  • 免费软件库合集软件资料网站东莞建筑企业招聘
  • 一个不懂技术的人如何做网站海南省建设信息官方网站
  • 乌云网是个什么网站做棋牌推广网站违法不
  • 北京网站代理备案品牌传播策划方案
  • 东莞建设工程交易中心门户网站个人网站定制
  • 济南商城网站制作虚拟微信聊天生成器
  • 网站qq临时会话php 向网站发送数据
  • 为什么网站经常被攻击南通网站优化推广
  • 网站目录 整理二次开发
  • 网站定制哪家快建筑业服务平台
  • 电器网站模板营销方法有哪几种
  • dede 做手机网站做外贸都有哪些网站
  • 旅游网站设计及开发服务营销论文
  • 网站开发怎么谈客户怎么做分享软件的网站
  • 网站用什么颜色wordpress服务器加速
  • 驻马店百牛网站建设做信息流推广需要建立网站么
  • 为什么现在建设银行要下载网站激活顶尖的锦州网站建设
  • 网站建设 用户管理番禺网站建设服务
  • 多功能网站建设服务至上中秋节网页设计素材
  • 怎么推广自己做的网站吗wordpress 安装 403
  • 顺义做网站公司阜阳市住房和城乡建设部网站
  • 东莞公司网站制作网络整合营销策划书
  • 宜春住房和城乡建设部网站798艺术区
  • 惠州网站制作找哪家it外包公司怎么样
  • 河北住房和城乡建设厅网站首页网站建设需要服务器支持 吗
  • 產品定制网站开发做一个商品网站多少钱
  • 长沙市网站建设公司网婚纱摄影网站设计模板