学习型 ASP/PHP/ASP.NET 主机 30元/年全能 ASP/PHP/ASP.NET 主机,支持月付专业 MSSQL 数据库空间,支持月付专业 MySQL 数据库空间,支持月付
发新话题
打印

求助

求助

题目描述:
有一个小小的黑客,他叫小白。有一天,他为了破解一个软件,
找出里面的漏洞,不停地去分析反汇编代码。
终于,他发现了破解的方法:在各个字符串资源里分别找出距离最近
的一对相同字符,这几对字符的距离组合起来再对用户名进行hash变换
就是注册码了!于是小白又一次偷笑。

输入:
多组测试数据,一组一行,每行为一个长度不超过1e6的字符串
以EOF标志结束

输出:
找出距离最近的一对相同字符,直接输出距离值。
如果不存在相同字符,则输出-1

样例输入:
123123
123456789
abcde12a45

样例输出:
3
-1
7

其它:
注意效率
引用:
/********************************************************
** Highlight software by yzfy(雨中飞燕) http://yzfy.org *
*********************************************************/
#include <stdio.h>
int main()
{
    char a[1000000];
    while(scanf("%s",a)!=EOF)
    {
        
        char *s=a;
        int k=-1;
        while(*s)
        {
            char *p=s+1;
            while(*p!='\0')
            {
                if(*s==*p&&k==-1) {k=p-s;break;}
                else if(*s==*p&&k>p-s)  {k=p-s;break;}
               
                p++;
            }
            s++;
        }
        printf("%d\n",k);

    }
    return 0;
}
Test  1:    Wrong Answer
--------------------------------
Problem ID     ct10_2
Test Result    Wrong Answer
Total Time     NULL
Total Memory   1028 Kb / 2000 Kb
Code Length    348 Bytes


不知道哪错了

[ 本帖最后由 zero1 于 2008-5-8 20:45 编辑 ]

TOP

ACM题,!
真理往往掌握在少数人手中,可现实却是少数服从多数!

TOP

注意是一行,你想想"%s"这种格式是什么结果

C/C++讨论群:46520219 3996098 21035626 57909089
免费的C/C++算法学习论坛:http://yzfy.org

TOP

char a[1000000];
1M内存啊……你就算是不怕MLE,放到函数里面也会栈溢出吧………………
还有,O(n^2)的复杂度?等着TLE吧……
话说,和字符有关的题目,已经很习惯桶排了………………
专心编程………
飞燕算法初级群:3996098
我的Blog

TOP

发新话题