該演算法命名為 Z 演算法,因為在此演算法中,我們需要建立一個 Z 陣列。Z 陣列的大小與文字大小相同。此陣列用於儲存從主字串的當前字元開始的最長可能子字串的長度。首先,模式和主文字與文字和模式中不存在的特殊符號連線。如果 P 是模式,T 是主文字,則連線後,它將是 P$T(假設 $ 不存在於 P 中)…… 閱讀更多
壞字元啟發式方法是 Boyer Moore 演算法的一種方法。另一種方法是好字尾啟發式。在這種方法中,我們將嘗試找到一個壞字元,即主字串中與模式不匹配的字元。當發生不匹配時,我們將移動整個模式,直到不匹配變成匹配,否則,模式將移動到壞字元之後。這裡,最佳情況下的時間複雜度為 O(m/n),最壞情況下的時間複雜度為 O(mn),其中 n 是文字長度,m 是模式長度。輸入和... 閱讀更多