正文

ct10_2:小小的黑客 ★2008-02-26 17:11:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/yaotou/32962.html

分享到:

郁闷~~~~又错~~~哪点出问题了嘛~ 帮帮小弟吧~~ 题目描述:有一个小小的黑客,他叫小白。有一天,他为了破解一个软件,找出里面的漏洞,不停地去分析反汇编代码。终于,他发现了破解的方法:在各个字符串资源里分别找出距离最近的一对相同字符,这几对字符的距离组合起来再对用户名进行hash变换就是注册码了!于是小白又一次偷笑。输入:多组测试数据,一组一行,每行为一个长度不超过1e6的字符串以EOF标志结束输出:找出距离最近的一对相同字符,直接输出距离值。如果不存在相同字符,则输出-1样例输入:123123123456789abcde12a45样例输出:3-17其它:注意效率难度:Very Easy 我的代码: #include<iostream>#include<cstring>using namespace std; char a[1000000];     //为什么这个放到主函数里面就出问题呢?  char b[1000000];   //会有Memory Limit Exceedint main(){  while(cin>>a) { int i,j,alen=0,tlen=0; long minlen=1000001; alen=strlen(a); for(i=0;i<alen;i++)  b[i]=a[i]; for(i=0;i<alen;i++) { for(j=i+1;j<alen;j++)  {   if(a[i]==b[j])   { tlen=j-i;    if(tlen<minlen)    {     if(tlen<0) tlen=-tlen;     minlen=tlen;    }    break;   }  } } if( minlen==1000001 ||minlen==0)   minlen=-1; cout<<minlen; } return 0;} 别人的代码: #define PB_ID ct10_2#include <iostream>#define MAXLENGTH 1000001 char string[MAXLENGTH]; int main(){    while (gets(string))    {        unsigned int min=(unsigned)-1;        int record[256];        for (int i=0;i<256;i++)record[i]=(unsigned)-1;         for (int i=0;string[i]!='\0';i++)        {            int idx=(int)string[i];            if (record[idx]!=-1)            {                int ans=i-record[idx];                if ((unsigned)ans<min)min=ans;            }            record[idx]=i;        }        printf("%d\n",min);    }    return 0;} #define CP_VC6PP#include <iostream>#include <string.h>using namespace std; int search(char *s){    int min,len,i=0,j;    char c1;    len=strlen(s);    min=len+1;    for(i=0;i<=len-1;i++)    {        c1=s;        j=1;        while((c1!=s[i+j])&&(j<=len-1-i)&&(j<=min))            j++;        if((j<min)&&(c1==s[i+j])) min=j;        if(min==1) break;    }    if(min>len) min=-1;    return min;} int main(){    char s[1000000];        while(gets(s))     {        cout<<search(s)<<endl;    }    return 0;}

阅读(1759) | 评论(0)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

暂无评论
您需要登录后才能评论,请 登录 或者 注册