剪花布條 HDOJ2087

2021-08-15 10:06:47 字數 959 閱讀 5693

題目鏈結

解題思路:這是kmp演算法模板的應用。需要注意的地方就是,這裡的子串需要重新取,所以對於j的處理時要改變一下。

#include

#include

#include

const

int maxn =

1010

;int next[maxn]

;char str[maxn]

,pat[maxn]

;void

getnext

(char s,

int len)

if(s[i]

==s[j+1]

) next[i]

=j;}

}//統計pattern串在text串中出現的次數

intkmp

(char text,

char pattern)

if(text[i]

==pattern[j+1]

)if(j==m-1)

}return ans;

}int

main()

return0;

}

#include

#include

using namespace std;

char str1[

1005

],str2[

1005];

int next[

1005];

void

getnext

(char str,

int len)

}int

main()

else

else}if

(j == len2)

}printf

("%d\n"

,cnt);}

return0;

}

HDOJ 2087 剪花布條

題意 給出主串與模式串,找出主串中不重疊的模式串的個數 思路 kmp,每找到一組匹配時,改變起點位置即可 注意點 無 以下為ac run id submit time judge status pro.id exe.time exe.memory code len.language author 1...

HDOJ2087 剪花布條(KMP)

problem solution 模板題,沒啥好說的。kmp匹配 如果成功,就把j 0,從頭開始匹配,答案累加。codes include include include using namespace std const int maxn 1010 char a maxn b maxn int n...

hdu 2087 剪花布條

include include includeusing namespace std const int maxn 1004 char str maxn str1 maxn int main printf d n count return 0 此題主要是strstr 函式的應用!據說也可以用kmp來...