字串查詢 1 暴力字串查詢演算法

2022-09-24 06:24:12 字數 615 閱讀 2271

virtual int findstr(const string &haystack, const string &needle) override

}if (j == patsize) return i;

}return -1;

}

最差情況下,haystack可能是"aaa...aaa",needle是"a...ab"。在這種情況下,需要比較(n-m + 1) * m 次才可以匹配成功。通常m << n, 因此時間複雜度為 o(mn), 空間複雜度為o(1)

基本原理同上,但是採用兩個指標分別跟蹤haystack和needle的跟蹤位置

const int strsize = haystack.size();

const int patsize = needle.size();

// 傳入空字串時

if (patsize == 0) return 0;

for (int i = 0, j = 0; i < strsize; i++)

else

if (j == patsize)

}return -1;

最差時間複雜度同上,空間複雜度同上

字串查詢 1

created by zzy on 15 11 16.對於乙個給定的 source 字串和乙個 target 字串,你應該在 source 字串中找出 target 字串出現的第乙個位置 從0開始 如果不存在,則返回 1。如果 source source 和 target target 返回 1。如...

演算法23 暴力子字串查詢

各位讀者,早上好。這裡介紹下子字串查詢最初發展的思想 暴力查詢 本部落格 示例均來自 演算法 algorithmes forth edition 美 robert sedgewick kevin wayne 著 謝路雲譯 package com.cmh.algorithm.str 暴力子字串查詢 a...

字串查詢

問題描述 對於乙個給定的 source 字串和乙個 target 字串,你應該在 source 字串中找出 target 字串出現的第乙個位置 從0開始 如果不存在,則返回 1。解決思路 採用雙重for迴圈解決,思路清晰,較容易寫,但效率不高,另外一種方法是用kmp演算法,效率較高。需注意邊界條件,...