[理工] 演算法String_matching
大家好:
想請問一個找字串比對的問題
例如:
字串: ABCDCBA
我要找 BC
但同時BC也等於CB
也就是找BC出來的結果不會=1,而是=2 (BC and CB)
我想到的方式是先找BC的全排列,也就是BC跟CB兩種 O(n!)
之後再用KMP去分別找BC跟CB O(m+n)
這樣就會是1+1=2,就能找到2組
請問這樣的想法是不是會比較慢,還是有辦法能夠就一次找出兩種組合?
謝謝大家
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.123.103.117 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/Grad-ProbAsk/M.1562298153.A.D60.html
→
07/05 13:47,
6年前
, 1F
07/05 13:47, 1F
推
07/05 14:19,
6年前
, 2F
07/05 14:19, 2F
→
07/05 14:19,
6年前
, 3F
07/05 14:19, 3F
→
07/05 14:19,
6年前
, 4F
07/05 14:19, 4F
→
07/05 14:19,
6年前
, 5F
07/05 14:19, 5F
→
07/05 14:19,
6年前
, 6F
07/05 14:19, 6F
→
07/05 14:19,
6年前
, 7F
07/05 14:19, 7F
我懂A大的意思了!那應該用兩個for迴圈去跑就行了,第一個是A,因為不是B或C
所以仍為false,之後到B判斷是B所以改為true,之後是C仍為true..
這樣複雜度應該是O(mn)就可完成吧! 謝謝回應!
※ 編輯: joy7658x348 (140.123.103.117 臺灣), 07/05/2019 16:43:48