求问
  • 板块学术版
  • 楼主lnwhl
  • 当前回复5
  • 已保存回复5
  • 发布时间2023/2/1 15:16
  • 上次更新2023/10/24 02:13:33
查看原帖
求问
451328
lnwhl楼主2023/2/1 15:16

请问这两种写法有什么本质区别吗

i=0,j=0;int ans=0;
while(i<s.size())
{
	if(j==-1||s[i]==t[j])++i,++j;
	else j=nxt[j];
	if(j==t.size())ans++,j=0;
}
cout<<ans<<"\n";
i=0,j=0;int ans=0;
while(i<s.size()&&j<t.size())
{
	if(j==-1||s[i]==t[j])++i,++j;
	else j=nxt[j];
	if(j==t.size())ans++,j=0;
}
cout<<ans<<"\n";

KMP,第一种写法 AC,第二种写法 WA。二者唯一的区别是循环条件不同,但这两种写法区别何在呢?求问。

2023/2/1 15:16
加载中...