当前位置:编程学习 > 网站相关 >>

传纸条(看清题目)

传纸条(message)
【题目描述】
小N和小A上课喜欢传纸条。
传纸条是有风险的,为了在老师发现的时候不知道他们在讨论什么内容,他们发明了一系列的加密方式。
其中有一种是这样的:一个数字由两个字符串a和b表达,这个数字就是b在a中匹配的位置。比如,a=”abcd”,b=”c”,那么这个数字就是3。
但是这样会出现一个问题,a和b能够表达两个不同的数字:比如,a=“ababa”,b=”aba”时,那个数字可以是1也可以是3。
他们对这种现象很好奇,现在给定一个字符串a,求一个整数x使得对于任意一个长度大于x的串b,这一问题都不会出现。
【输入数据】
一个仅由小写字母组成的字符串a
【输出数据】
一行一个整数,表示x的最小值
【样例输入】
ababa
【样例输出】
3
【数据范围】
对于50%的数据,a的长度≤10,
对于100%的数据,a的长度≤100.

[delphi] 
Program message; 
var 
   n,i,j,k,l,ans:longint; 
   s:string; 
function min(a,b:longint):longint; 
begin 
   if (a<b) then exit(a) else exit(b); 
end; 
function max(a,b:longint):longint; 
begin 
   if (a>b) then exit(a) else exit(b); 
end; 
 
begin 
   assign(input,'message.in'); 
   assign(output,'message.out'); 
   reset(input); 
   rewrite(output); 
 
 
   readln(s); 
   n:=length(s); 
   ans:=0; 
   for i:=1 to n do 
      for j:=i+1 to n do 
      begin 
         k:=i; 
         l:=j; 
         while ((s[k]=s[l]) and (l<=n)) do 
         begin 
            inc(k); 
            inc(l); 
            if (l>n) then break; 
         end; 
 
 
         ans:=max(ans,k-i); 
 
      end; 
   writeln(ans); 
 
   close(input); 
   close(output); 
 
end. 

补充:综合编程 , 其他综合 ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,