📄 calfflac.pas
字号:
{
ID:maigoak1
PROG:calfflac
}
program calfflac;
const
maxn=20000;
var
fin,fout:text;
ch:array[1..maxn]of char;
st:array[0..maxn]of string;
n,i,len,start:integer;
c:char;
function isletter(c:char):boolean;
begin
if (c>='A') and (c<='Z') or (c>='a') and (c<='z') then isletter:=true else isletter:=false;
end;
function lcase(c:char):char;
begin
if (c>='A') and (c<='Z') then lcase:=chr(ord(c)+32) else lcase:=c;
end;
procedure extend(s,t:longint);
var
l:longint;
begin
while (s>1) and (t<n) do
if ch[s-1]=ch[t+1] then begin
dec(s);
inc(t);
end
else
break;
l:=t-s+1;
if (l>len) or (l=len) and (s<start) then begin
len:=l;
start:=s;
end;
end;
begin
n:=0;
fillchar(st,sizeof(st),0);
assign(fin,'calfflac.in');
reset(fin);
repeat
read(fin,c);
if isletter(c) then begin
inc(n);
ch[n]:=lcase(c);
end;
st[n]:=st[n]+c;
until eof(fin);
close(fin);
len:=0;
for i:=1 to n do
extend(i,i);
for i:=2 to n do
if ch[i-1]=ch[i] then
extend(i-1,i);
assign(fout,'calfflac.out');
rewrite(fout);
writeln(fout,len);
for i:=start to start+len-2 do
write(fout,st[i]);
writeln(fout,st[start+len-1][1]);
close(fout);
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -