博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
51nod 1304 字符串的相似度(exkmp)
阅读量:6885 次
发布时间:2019-06-27

本文共 1157 字,大约阅读时间需要 3 分钟。

拓展kmp裸题

自己跟自己匹配即可

模板测试=v=

 

#include 
#include
using namespace std;const int maxn = 1e6 + 100;char S[maxn];int Next[maxn], extend[maxn];void GetNext(char *T, int *Next){ int len = strlen(T); Next[0] = len; int a, p; for(int i = 1, j = -1; i < len; i++, j--){ if(j < 0 || i + Next[i-a] >= p){ if(j < 0) p = i, j = 0; while(p < len && T[p] == T[j]) p++, j++; Next[i] = j; a = i; } else Next[i] = Next[i-a]; }}void GetExtend(char *S, char *T, int *extend, int *Next){ GetNext(T, Next); int a, p; int slen = strlen(S), tlen = strlen(T); for(int i = 0, j = -1; i < slen; i++, j--){ if(j < 0 || i + Next[i-a] >= p){ if(j < 0) p = i, j = 0; while(p < slen && j < tlen && S[p] == T[j]) p++, j++; extend[i] = j; a = i; } else extend[i] = Next[i-a]; }}int main(){ cin>>S; int len = strlen(S); GetNext(S, Next); long long ans = 0; for(int i = 0; i < len; i++) ans += Next[i]; cout<
<

 

转载于:https://www.cnblogs.com/Saurus/p/7637534.html

你可能感兴趣的文章
199. Binary Tree Right Side View
查看>>
配置SpringBoot方便的切换jar和war
查看>>
2018最佳GAN论文回顾(下)
查看>>
Vue使用element-ui所遇BUG与需求集结(二)
查看>>
弹性公网EIP,让网络更自由、灵活
查看>>
一对一直播源码都实现了哪几种常见的优化技术? ...
查看>>
Unity学习系列一简介
查看>>
利用Python框架pyxxnet_project实现的网络服务
查看>>
一个最简单的WebSocket hello world demo
查看>>
C# 8.0的三个令人兴奋的新特性
查看>>
关于ip_conntrack跟踪连接满导致网络丢包问题的分析
查看>>
烂泥:linux学习之VNC远程控制(一)
查看>>
如何解决Xshell使用时中文字体是躺倒显示的问题
查看>>
Scala函数的定义的几种写法
查看>>
【iphone应用开发】iphone 应用开发之二:UITextView控件的详细讲解
查看>>
HTML5 API摘要
查看>>
去除滚动条的可滚动效果
查看>>
注入攻击 初见解
查看>>
JProfiler_SN_8_x.txt
查看>>
IntelliJ IDEA 社区版没有 Spring Initializr
查看>>