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

网站建设策划方案如何写/免费申请网站

网站建设策划方案如何写,免费申请网站,全国企业信用公示查询服务平台,做区位分析的地图网站1.Next数组 next[j]{ j1时&#xff0c;0 j!1时&#xff0c;最大子串长度1&#xff0c;即P1P2….Pk-1Pj-k1….Pj-1,1<k<j,(看来j2时是没有最大子串的,因此next[2]一定为1) 其它情况&#xff0c;1 } next[j]0说明模式串与匹配串都要后移一位 next[j]&#xff01;0说明匹配串…

1.Next数组

next[j]={

j=1时,0

j!=1时,最大子串长度+1,即P1P2….Pk-1==Pj-k+1….Pj-1,1<k<j,(看来j=2时是没有最大子串的,因此next[2]一定为1)

其它情况,1

}

next[j]=0说明模式串与匹配串都要后移一位

next[j]!=0说明匹配串的当前字符与next[j]匹配

next数组的下标从1开始,因此我们在模式串(T)的前面添加一个字符‘#’,初始化next[1]=0

求每个next[j](j>1)时实际上利用到上next[j-1]的值

如求next[5]时,则查看next[4]的值,如果T[4]=T[next[4]],则next[5]=next[4]+1

如果T[4]!=T[next[4]],T[4]再与next[T[next[4]]]比,如果相等,则next[5]=next[T[next[4]]]+1,如此继续,如果它的next值为0,则跳到其它情况

因此,标准算法如下:

void get_next()
{unsigned int length = strlen(t);next[0]=0;next[1]=0;unsigned int i=1,j=next[1];while(i<length-1){if(j==0){i++;j=1;next[i]=1;continue;}if(t[i]==t[j]){i++;j++;next[i]=j;}else j = next[j];}}

这段代码优化一下:

scanf("%s",t+1);

t[0]=’#’;

void get_next()
{unsigned int length = strlen(t);//next[0]=0;next[1]=0;unsigned int i=1,j=next[1];while(i<length-1){if(j==0||t[i]==t[j]){i++;j++;next[i]=j;}else j = next[j];}}

对于POJ3461,next数组要多求一位

要求:求出上串在下串中出现的次数

Sample Input
3
BAPC
BAPC
AZA
AZAZAZA
VERDI
AVERDXIVYERDIAN

Sample Output
1
3
0

#include <iostream>
using namespace std;
#define MAX 1000003
unsigned int next[MAX];
char s[MAX];
char t[MAX];
void get_next()
{unsigned int length = strlen(t);next[0]=0;next[1]=0;unsigned int i=1,j=next[1];while(i<length){if(j==0||t[i]==t[j]){i++;j++;next[i]=j;}else j = next[j];}}
unsigned int kmp(){unsigned int length = strlen(s)-1;unsigned int matLen = strlen(t)-1;if(length<matLen)return 0;unsigned int i=1,j=1,count = 0;while(i<=length){if(j==0||s[i]==t[j]){i++;j++;}else j = next[j];if(j==matLen+1){count++;j = next[j]; }}return count;
}int main()
{freopen("i://in.txt","r",stdin);int count;scanf("%d",&count);t[0]='#';s[0]='#';for(int i=0;i<count;i++){scanf("%s",t+1);scanf("%s",s+1);get_next();printf("%d\n",kmp());}return 0;
}

转载于:https://www.cnblogs.com/yangyh/archive/2011/05/29/2061913.html

http://www.lbrq.cn/news/1451899.html

相关文章:

  • 创建网站的软件什么梦/南宁 百度网盘
  • iis怎么添加网站/优化设计三年级上册语文答案
  • 口红网站建设目标/新开网店自己如何推广
  • 乐清建网站/百度新闻最新消息
  • php动态网站建设/电商运营多少钱一个月
  • 网站推广渠道/石家庄学院
  • 企业官方网站认证/谷歌官方网站登录入口
  • 盐城做企业网站的价格/百度热搜榜单
  • 怎样做自己可以发布消息的网站/如何免费自己创建网站
  • 珠海网站制作网络推广/网搜网
  • 青岛中嘉建设集团网站/温州网站建设优化
  • 哪些网站做推广好/360关键词推广
  • 玉林市建设工程交易中心网站/百度收录提交入口网址
  • 简历制作在线/seo关键词排名查询
  • 中山祥云做的网站/合肥网络推广网络运营
  • 网站建设方法/百度云网盘资源搜索引擎
  • 网上帮别人做网站/抖音代运营公司
  • 展示型企业网站开发/郑州做网站推广哪家好
  • 包头怎样做网站/什么是搜索推广
  • 做美国直邮物流网站/企业网站有哪些
  • 手机 网站 源码/2020十大网络热词
  • 自助建站帮助网/百度下载免费官方安装
  • 学做网站需要买什么书/北京seo服务销售
  • 建设企业网站公司机构官网/网络营销做的好的企业
  • 网络运维培训/宁波网站关键词优化排名
  • 做网站开发服务商/建网站要多少钱
  • 怎么找网站url地址/广东网络推广运营
  • raid管理网站开发/aso优化公司
  • 上海企业网站建站/人工智能培训心得体会
  • 鞍山制作网站/株洲seo优化报价
  • RHCA03--硬件监控及内核模块调优
  • RHCA04--系统模块管理与资源限制
  • C++ - 基于多设计模式下的同步异步日志系统(11w字)
  • Redis缓存详解及常见问题解决方案
  • 2025年8月4日私鱼创作平台v1.0.4公测版更新发布-完成大部分功能包含关注创作者以及发布作品及合集功能优雅草科技
  • 13.Home-面板组件封装