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

中国建设银行网站官网下载网站建设课程中的收获

中国建设银行网站官网下载,网站建设课程中的收获,成都网络营销公司哪个好,网站诊断网站seo诊断声明:下边的例子均表示下标从1开始的数组 ne数组的定义: next[i] 就是使子串 s[1…i] 有最长相等前后缀的前缀的最后一位的下标。ne[i]也可以表示相等子串的长度 准备执行jne[j]时, 表示当前s[i]!p[j1] , 如果ne[j]1 ,那么下…

声明:下边的例子均表示下标从1开始的数组

ne数组的定义:

next[i] 就是使子串 s[1…i] 有最长相等前后缀的前缀的最后一位的下标。ne[i]也可以表示相等子串的长度

准备执行j=ne[j]时,  表示当前s[i]!=p[j+1]  ,  如果ne[j]=1 ,那么下一次匹配从p数组的第二个字符(也就是p[j+1])开始比较是否s[i]=p[j+ 1]

a b a b a b c a b 

1 2 3 4 5 6 7 8 9

       a b a b a b c a b 

       1 2 3 4 5 6 7 8 9

同理:ne数组的建立也是这样的,从数组的第二个字符开始枚举,因为第一个字符没有相同的字串,从i=2,j=0,开始枚举,

i=2,j=0 p[i] != p[j+1]  ne[2]=0;

i=3,j=0 p[i]==p[j+1]  ,j++,ne[3]=1;

i=4,j=1  p[i]==p[j+1]  ,j++,ne[4]=2;

i=5,j=2  p[i]==p[j+1]  ,j++,ne[5]=3;

i=6,j=3  p[i]==p[j+1]  ,j++,ne[6]=4;

i=7,j=4  p[i]!=p[j+1] (此时两者不相等,那么执行j=ne[j] ,j=2,刚才想样例时发现,为什么下一次比较不直接比较j+1=5,i=7呢?想了一下,其实这和在s数组中和p数组相等的字串问题一样,此时p数组才走到j=4,那么 j 退一下,只能退到 j = ne[i]   发现p[i]!=p[j+1],继续执行j=ne[j] ,j=0,所以下一次比较就从0开始比较) 

(其实直接看ne数组的更新比较绕,可以对比s数组和p数组的匹配,两者其实是一样的,就上边最后一步 j -----> 0来说,下一次s数组的s[i]要和p数组的p[1]比较)

 KMP数组的应用

 分析:观察样例发现,每次后边加的都是剔除字符串t的最长的前缀和后缀相等的子串后剩下的字符串,那么就可以用KMP求最长字串的长度(也就是 ne[n]  )

#include <iostream>
#include <cstring>
#include <algorithm>using namespace std;const int N = 55;int n, m;
char str[N];
int ne[N];int main()
{scanf("%d%d", &n, &m);scanf("%s", str + 1);for (int i = 2, j = 0; i <= n; i ++ ){while (j && str[i] != str[j + 1]) j = ne[j];if (str[i] == str[j + 1]) j ++ ;ne[i] = j;}// cout<<ne[n]<<endl;printf("%s", str + 1);for (int i = 0; i < m - 1; i ++ )printf("%s", str + 1 + ne[n]);return 0;
}

http://www.yayakq.cn/news/223323/

相关文章:

  • 澄迈住宅与建设局网站ps怎么制作网页
  • 浙江企业网站建设wordpress 小米社区
  • 做网站游戏需要什么网站icp备案要钱么
  • 学勇建站服装企业官方网站
  • 微信网站开发哪家好个人简历电子版可编辑
  • 铁哥们网站建设ASP个人网站的建设
  • 网站做微信小程序湘潭网站建设磐石网络上班时间
  • 五合一网站建设方案阿里云做网站选什么主机
  • 外国人做的关于中国的视频网站无锡网站建设价格低
  • 网站建设推广新闻泰州网站建设搭建
  • 做洗衣液的企业网站网站上传空间下一步
  • 深圳工厂网站建设公司seo和竞价排名的区别
  • 网站开发 提成建设网站中存在的问题
  • 做自适应网站做网络推广的方法
  • 如何做网站的充值功能济南轻电商网站建设公司
  • 百度网站建设北京找钢网网站建设
  • 网络公司网站源码新手想写小说怎么做网站
  • 邵阳建设银行网站是多少wordpress in排序
  • 搜索引擎推广案例岳阳seo公司
  • 怎样做机械租赁的网站朝阳区互联网公司
  • 二七郑州网站建设行业网站开发公司
  • wordpress搭建站点建设网上银行个人网上银行登录
  • 建筑方案设计流程seo北京网站推广
  • 洛阳市做网站的建设网站火车票预订
  • 成都网站建设福州网站开发常用颜色
  • 站长之家域名公司里面php开发一个网站的流程
  • 怎么做单位网站抚顺市网站建设
  • 南山区网站建设公司cms+wordpress+国内
  • 网站vps无法登陆网站开发 软件
  • 怎么给网站做域名重定向福田公司投诉电话