[Java] POJ2752-Java(小猫非常著名,很多夫妇Byteland翻山越 →→→→→进入此内容的聊天室

来自 , 2020-09-03, 写在 Java, 查看 168 次.
URL http://www.code666.cn/view/a42a596f
  1. POJ 2752
  2. 描述
  3. 小猫非常著名,很多夫妇Byteland翻山越岭,并要求新生的小猫的名字给他们的孩子。他们寻求的名字,同时寻求名声。为了摆脱这种无聊的工作,创新的小猫是一个简单但神奇的算法:
  4.  
  5.  
  6. 步骤1。把父亲的名字,母亲的名字,一个新的字符串。
  7. 步骤2。找到一个合适的prefix-suffix串年代(不仅是前缀,后缀的年代还)
  8.  
  9.  
  10. 例子:父亲=“阿拉巴马州”,母亲=‘拉’,我们有年代=“阿拉巴马”+“la”=“alala”。潜在的年代prefix-suffix字符串{ ' a ',“阿拉巴马州”,“alala”}。给定的字符串,你能帮助小猫编写一个程序来计算可能的年代prefix-suffix字符串的长度吗?(他会谢谢你给你的宝宝一个名字:)
  11. 输入
  12. 输入包含一个测试用例的数量。每个测试用例占一行,包含上述字符串年代。
  13.  
  14.  
  15. /*********************************     author   : Grant Yuan     algorithm; kmp     source   : POJ 2752   time    ;2014/10/3 20:38 *********************************/   #include
  16.  <iostream>
  17.   #include
  18.   <cstdio>
  19.    #include
  20.    <cstring>
  21.     #include
  22.     <cstdlib>
  23.      #include#define MAX 400007using namespace std;int next[MAX];char s[MAX];int ans;int l;int sum[MAX];void get_next(){ next[0]=-1; int j=-1; int i=0; while(i
  24.      <l){ if(j="=-1||s[j]==s[i])" {="" i++;j++;="" next[i]="j;" }="" else="" j="next[j];" }}int="" main(){="" while(~scanf("%s",s)){="" int="" j;="" memset(sum,0,sizeof(sum));="" l="strlen(s);" get_next();="" k="0;" for(int="" i="k-2;i" sum[k++]="next[i];">
  25.       =0;--i) printf("%d ",sum[i]); printf("%d/n",l);} return 0;}
  26.      </l){>
  27.     </cstdlib>
  28.    </cstring>
  29.   </cstdio>
  30.  </iostream>//源代码片段来自云代码http://yuncode.net
  31.                        

回复 "POJ2752-Java(小猫非常著名,很多夫妇Byteland翻山越"

这儿你可以回复上面这条便签

captcha