1. 程式人生 > 資訊 >OCW×inflation 潮牌聯名:復古油畫加絨衛衣 39 元(減 130 元)

OCW×inflation 潮牌聯名:復古油畫加絨衛衣 39 元(減 130 元)

KMP模板

主要需要完成next陣列決字串的匹配。

返回的是needle字串首次匹配 haystack字串的首字元的下標(下標是針對haystack字串的)。

 1 int strStr(string haystack, string needle) {
 2         int n = haystack.size(), m = needle.size();
 3         if(m == 0) return 0;
 4         vector<int> next(m);
 5         for(int i=1,j=0;i<m;i++){//完成next陣列
 6
while(j>0 && needle[i]!=needle[j]){ 7 j = next[j-1]; 8 } 9 if(needle[i] == needle[j]){ 10 j++; 11 } 12 next[i] = j; 13 } 14 for(int i=0,j=0;i<n;i++){//完成字串的匹配 15 while(j>0
&& haystack[i] != needle[j]){ 16 j = next[j-1]; 17 } 18 if(haystack[i] == needle[j]) j++; 19 if(j == m) return i-m+1; 20 } 21 return -1; 22 }

參考連結:https://leetcode-cn.com/problems/implement-strstr/solution/shi-xian-strstr-by-leetcode-solution-ds6y/

雪兒言