hdu 4552(字符串)

2014-11-24 01:44:20 · 作者: · 浏览: 3

不用KMP

比较第一个字符时,记录当前位置+1的下标,下次比较第二个位置,从记录的下标开始比较久可以了。。。

[cpp]
#include"stdio.h"
#include"string.h"
int main()
{
int T;
int n;
int i,j,k,l,t;
int len,ans;
int a[100001];
char s[100001];
while(gets(s))
{
len=strlen(s);
for(i=0;i a[i]=i;
j=len;
ans=0;
l=0;
t=1;
while(ans!=t)
{
t=ans;
k=0;
for(i=0;i {
if(s[a[i]]==s[l]&&a[i] {
a[k++]=a[i]+1;
ans++;
}
}
j=k;
l++;
}
printf("%d\n",ans%256);
}
return 0;
}

#include"stdio.h"
#include"string.h"
int main()
{
int T;
int n;
int i,j,k,l,t;
int len,ans;
int a[100001];
char s[100001];
while(gets(s))
{
len=strlen(s);
for(i=0;i a[i]=i;
j=len;
ans=0;
l=0;
t=1;
while(ans!=t)
{
t=ans;
k=0;
for(i=0;i {
if(s[a[i]]==s[l]&&a[i] {
a[k++]=a[i]+1;
ans++;
}
}
j=k;
l++;
}
printf("%d\n",ans%256);
}
return 0;
}