for(int i=1;i<len;i++){ if(i<r){ z[i]=min(z[i-l],r-i+1);//别写成z[i-1] } while(i+z[i]<len&&s[z[i]]==s[i+z[i]]){ z[i]++; } if(i+z[i]-1>r){ l=i,r=i+z[i]-1; } }
我是弱智