Xauduynhat - Xâu duy nhất
Xauduynhat - Xâu duy nhất
Cho một xâu kí tự chỉ gồm các kí tự chữ cái. Do yêu thích tính đơn nhất
nên Nam muốn tìm ra một xâu con gồm các kí tự liên tiếp sao cho trong xâu này mỗi
kí tự chỉ xuất hiện đúng 1 lần duy nhất.
Bạn được Nam nhờ giúp đỡ, hãy tìm giúp nam xâu đạt yêu cầu có độ dài lớn
nhất sẽ là bao nhiêu.
Input:
- Gồm một dòng duy
nhất là xâu ban đầu S (độ dài <= 5*104)
Output:
- Gồm một số duy nhất là đáp án tìm được.
Ví dụ
·
input
acbE
output
4
var st,d:widestring; // =2^30 ki tu,
ansistring=2^31 ki tu
i,j,max:longint;
begin
readln(st);
max:=0;d:='';
for i:=1 to length(st)-1 do
for j:=i to length(st) do
if pos(st[j],d)=0 then d:=d+st[j]
else
begin
if max < length(d) then
max:=length(d);
d:='';
Break;
end;
if max < length(d) then max:=length(d);
write(max);
end.
kieu tep
var st,d:widestring; //=2^30 ki tu, ansistring=2^31 ki tu
i,j,max:longint;fi,fo:text;
begin
assingn(fi,'xdn.inp');reset(fi);
assingn(fo,'xdn.out');rewrite(fo);
readln(fi,st);
max:=0;
for i:=1 to length(st)-1 do
for j:=i to length(st) do
if pos(st[j],d)=0 then d:=d+st[j]
else
begin
if max < length(d) then
max:=length(d);
d:='';
Break;
end;
if max < length(d) then max:=length(d);
write(fo,max);close(fi);close(fo);
end.
Nhận xét
Đăng nhận xét