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

Bài đăng phổ biến từ blog này

ALARM - Đồng hồ báo thức

EZSORT - Sắp xếp là chuyện nhỏ!