實現 Sunday 演算法

2022-09-16 06:45:09 字數 655 閱讀 3186

鑑於校園招聘筆試題,有個字串模式匹配的問題,99+%都是暴力,偶爾一兩個寫kmp,但是明顯是知其表不知其裡。期待的 bm演算法 或者 sunday 沒有出現!

鑑於網友的回覆,特此宣告:我的**假定字串中的字元都在ascii範圍內

by the way,國內有好多 ***** 是對sunday的改進,我本人是忽略不計, 國內的*****擅長這個。

標頭檔案定義:

/* sunday.h */

class sunday 

;原始檔

/* sunday.cpp */

sunday::sunday()

sunday::~sunday()

void sunday::precompute(const char* pattern)

int sunday::find(const char* pattern, const char* text)

if (*p == 0)

return tx-text;

tx += _td[tx[_patlength]]; 

}return -1;

}簡單測試下:

SUNDAY 演算法 c 實現

public class sunday 實現sunday演算法 public int findchr string str,string sfind str length str.length fin length sfind.length while start fin length str le...

Java實現Sunday演算法

sunday演算法是daniel m.sunday於1990年提出的字串模式匹配。其核心思想是 在匹配過程中,模式串發現不匹配時,演算法能跳過盡可能多的字元以進行下一步的匹配,從而提高了匹配效率。相比於另外幾個著名的字串匹配演算法,kmp以及bm演算法而言,sunday演算法不僅理解起來比較容易,而...

sunday演算法特徵碼 sunday 演算法

sunday 演算法 編輯鎖定 sunday演算法是daniel m.sunday於1990年提出的字串模式匹配。其核心思想是 在匹配過程中,模式串發現不匹配時,演算法能跳過盡可能多的字元以進行下一步的匹配,從而提高了匹配效率。中文名sunday 演算法 外文名sunday algorithm人 物...