请问这两种写法有什么本质区别吗
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。二者唯一的区别是循环条件不同,但这两种写法区别何在呢?求问。