字符串 String \text{String} String 准备写成一个系列。
目录
KMP 笔记
基本说明与常用符号
以下内容在整个 String \text{String} String 系列中默认生效。
基本说明
-
所有字符串的下标从 1 1 1 开始。
-
所有的实际字符串使用
\texttt
字体。如 s = abac s=\texttt{abac} s=abac。 -
所有算法名和公式内文字使用
\text
字体。如 Manacher \text{Manacher} Manacher 算法。 -
标题内不使用 KaTeX \KaTeX KATEX。
常用符号
字符串相关
-
用 s [ i ] s[i] s[i] 表示字符串 s s s 的第 i i i 个字符。如 abc [ 2 ] = b \texttt{abc}[2]=\texttt{b} abc[2]=b。
-
用 s [ l : r ] s[l:r] s[l:r] 表示字符串下标在 [ l , r ] [l,r] [l,r] 内的字符构成的子串(闭区间), : : : 前面没有数则默认为 1 1 1,冒号后面没有数默认为字符串长度。如当 s = abcde s=\texttt{abcde} s=abcde 时, s [ 2 : 4 ] = bcd s[2:4]=\texttt{bcd} s[2:4]=bcd, s [ 3 : ] = cde s[3:]=\texttt{cde} s[3:]=cde,类似
python
中字符串切片的语法。 -
用 ∣ s ∣ \lvert s \rvert ∣s∣ 表示字符串 s s s 的长度。如 ∣ aba ∣ = 3 \lvert\texttt{aba}\rvert=3 ∣aba∣=3。
-
用 + + + 表示字符或字符串的连接。如 ab + a = aba \texttt{ab}+\texttt{a}=\texttt{aba} ab+a=aba。
-
用 × \times × 表示字符或字符串的重复拼接。如 ab × 3 = ababab \texttt{ab}\times3=\texttt{ababab} ab×3=ababab,数与字符或字符串没有固定位置, 3 × a 3\times\texttt{a} 3×a 和 a × 3 \texttt{a}\times 3 a×3 均可。
-
用 lcp ( s , t ) \operatorname{lcp}(s,t) lcp(s,t) 表示字符串 s s s 和字符串 t t t 的最长公共前缀。如 lcp ( abc , abd ) = ab \operatorname{lcp}(\texttt{abc},\texttt{abd})=\texttt{ab} lcp(abc,abd)=ab。
-
用 lcs ( s , t ) \operatorname{lcs}(s,t) lcs(s,t) 表示字符串 s s s 和字符串 t t t 的最长公共后缀。如 lcs ( abc , dbc ) = bc \operatorname{lcs}(\texttt{abc},\texttt{dbc})=\texttt{bc} lcs(abc,dbc)=bc。
其他符号
-
推出 ⟹ \implies ⟹
-
赋值 ← \gets ←
-
不等于 ≠ \neq =
本作品采用 CC BY-SA 4.0 进行许可,附加条款亦可使用。