int work(int len,int pat[]) //最大表示法 { //int len = strlen(pat); int i=0,j=1,k=0; while(i<len && j<len && k<len) { int t = pat[(i+k)%len] - pat[(j+k)%len]; if(!t) k++; else { if(t>0) j = j+k+1; else i = i+k+1; if(i == j) j++; k = 0 ; } } return i<j?i:j; }
时间: 2024-10-01 12:57:08