[编程题] 偶串

来源:互联网 发布:手机摄影师调色软件 编辑:程序博客网 时间:2024/06/06 07:21

时间限制:1秒

空间限制:32768K

如果一个字符串由两个相同字符串连接而成,就称这个字符串是偶串。例如"xyzxyz"和"aaaaaa"是偶串,但是"ababab"和"xyzxy"却不是。
牛牛现在给你一个只包含小写字母的偶串s,你可以从字符串s的末尾删除1和或者多个字符,保证删除之后的字符串还是一个偶串,牛牛想知道删除之后得到最长偶串长度是多少。

输入描述:

输入包括一个字符串s,字符串长度length(2 ≤ length ≤ 200),保证s是一个偶串且由小写字母构成 

输出描述:

输出一个整数,表示删除之后能得到的最长偶串长度是多少。保证测试数据有非零解 

输入例子1:

abaababaab 

输出例子1:

6

import java.util.Scanner;

 

publicclass DualString {

      publicstaticbooleanisDual(Stringstr)//判断字符串是否为偶串

      {

           intlen=str.length();

           if(len%2==1)//偶串长度必定为偶数

                 returnfalse;

           intlen1=len/2;

           for(inti=0;i<len1;i++)

                 if(str.charAt(i)!=str.charAt(i+len1))

                      returnfalse;

           returntrue;

      }

      publicstaticvoid main(String[] args)

      {

            Scanner scan =newScanner(System.in);//这种输入要学会

            //DualStringds=new DualString();

           while(scan.hasNext())//这是要接受多组输入的节奏啊

           {

                 String str = scan.nextLine();

                 intlen=str.length();

                 for(inti=len-2;i>=0;i--)//i=len,取到len左侧,此时是最大长度。原来就是偶串,现在问的是删除一部分之后的最大偶串长度

                      if(isDual(str.substring(0,i)))

                      {

                            System.out.println(i);

                            break;

                      }                    

           }  

      }    

}