































































更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元

#include
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061
微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频
查找串t在串s中出現的次數
//
查找串t在串s中出現的次數,模式匹配,KMP算法
#include
<
iostream
>
#include
<
string
>
#include
<
vector
>
using
namespace
std;
string
s,t;
vector
<
int
>
next;
void
nextIt()
{
int
i
=
0
,j
=-
1
,n
=
t.size();
next[
0
]
=-
1
;
while
(i
<
n)
{
if
(j
==-
1
||
t[i]
==
t[j])
{
i
++
;
j
++
;
next[i]
=
j;
}
else
j
=
next[j];
}
}
int
countIt()
{
int
i
=
0
,j
=
0
,cnt
=
0
,n
=
s.size(),m
=
t.size();
while
(i
<
n)
{
if
(j
==-
1
||
s[i]
==
t[j])
{
i
++
;
j
++
;
if
(j
==
m)
{
cnt
++
;
j
=
next[j];
}
}
else
j
=
next[j];
}
return
cnt;
}
void
run()
{
cin
>>
t
>>
s;
next.resize(t.size()
+
1
);
nextIt();
cout
<<
countIt()
<<
endl;
}
int
main()
{
int
n;
cin
>>
n;
for
(
int
i
=
0
;i
<
n;i
++
)run();
return
0
;
}