1.kmp
#include#include#include#include#include#include#define maxn 1000006
using namespace std;
int n,m,nex[maxn];
char s[maxn],t[maxn];
int main()
j=0;
for(int i=1;i<=m;i++)
}for(int i=1;i<=n;i++)cout《想法:利用字首自相似性,匹配t時移動s的指標位置
2.ac_automation
#include#include#include#include#include#include#include#define maxn 1000006
using namespace std;
int n,len,tr[maxn][28],e[maxn],cnt,fail[maxn];
char s[maxn],t[maxn];
void cle()
void ins()
e[j]++;
}void build()
else tr[k][i]=tr[fail[k]][i];}}
}int main()
build();
scanf("%s",s+1);int len=strlen(s+1);
int p=0,ans=0;
for(int i=1;i<=len;i++)
cout《路徑壓縮
原理:構建字典圖實現自動跳轉,構建失配指標實現多模式匹配
3.suffix_automation
#include#include#include#include#include#include#define maxn 2000006
using namespace std;
int sz,root,n,la,rs[maxn],t[maxn],a[maxn];
long long ans;
struct nodes[maxn];
char ch[maxn];
void extend(int c)
} la=np;
}void sort()
void get_r() }}
int main()
字串匹配 KMP演算法 模版
問題 給定兩個字串a b,求b在a中出現的位置。輸入 第一行為乙個字串a,長度大於等於1小於等於100000。第二行為乙個字串b,長度大於等於1小於等於1000。輸出 乙個整數,b在a中出現的位置,若b不是a的字串,輸出 1。樣例 abababc ababc ps 該 只能求出第一次匹配時的字元位置...
beetl模版for迴圈渲染字串
beetl for迴圈渲染html字串的方式,beetl if條件判斷輸出,beet自定義標籤和標籤引用,beetl html賦值,beetl渲染json,beetl注釋 變數定義,更多文件請到 beetl for迴圈輸出 beetl for輸出select option for item in l...
ES 6 模版字串
es6模板字元簡直是開發者的福音啊,解決了es5在字串功能上的痛點。第乙個用途,基本的字串格式化。將表示式嵌入字串中進行拼接。用 來界定。es5 var name nwd console.log hello name es6 const name nwd console.log hello hell...