2016-10-02 90 views
1

我應該如何處理這種情況時,要匹配的模式包含通配符,*,如AB*C,這是目前是文本,ABEFGCS(這裏*消耗字符EFG)使用KMP算法?使用KMP-Algorithm在字符串匹配中處理通配符'*'運算符?

算法中的哪些修改可以解決這個問題?

+0

'*'本質上是貪婪的。我只會在文本中匹配AB,然後在AB之後匹配C. – SMA

+0

你能否清楚地解釋一些僞代碼,我應該在KMP算法中做什麼確切的改變? – Jarvis

回答

2

事實上,我得到它,留下回答供參考,我們可以簡單地打破關於通配符運算符的字符串,在每個部分上應用KMP,並檢查每個部分是否是子字符串,以及部分是否可以在線性時間內檢查連續或不連續,因此總體時間複雜度仍然是線性的。