Cho xâu S gồm n ký tự, biết rằng xâu S chỉ chứa các ký tự in thường trong bảng chữ cái tiếng Anh (10<n<100);
Yêu cầu: Hãy tìm xâu ký tự dài nhất có
chứa 1 ký tự “a” và 1 ký tự “z” xuất hiện trong xâu S.
Dữ liệu: Cho trong tập tin xau.inp gồm một dòng chứa các ký tự của
xâu S.
Kết quả: Ghi ra tập tin xau.out gồm một dòng ghi xâu ký tự vừa
tìm được. Nếu tìm được nhiều hơn 1 xâu ký tự thoả mãn đề bài thì ghi xâu ký tự
đầu tiên tính từ trái sang phải. Nếu không tìm được xâu thoả mãn đề bài thì ghi
“Khong tim duoc”.
Ví
dụ:
xau.inp |
xau.out |
abcdefghijabca |
Khong tim duoc |
Abczbczdefgh |
abczbc |
CODE THAM KHẢO:
Program Xaucon;
Var _S,s:string;
//=======================
procedure ReadFile;
Begin
Assign(input,'xau.inp');reset(input);
readln(s);
End;
//=========================
procedure Process;//ky thuat 2 con tro
var N,M,d,l,r: integer;
st:string;
Begin
N:=length(s);d:=0;l:=1;
For r:=1 to N do
Begin
if((s[r]='a') or(s[r]='z')) then inc(d);
while (d>2) do
Begin
if((s[l]='a') or(s[l]='z')) then dec(d);
inc(l);
End;
if(d=2) then
Begin
St:=copy(s,l,r-l+1);
M:=length(st);
if(length(_S)<M) then
Begin
if ((pos('a',st)>0)and(pos('z', st)>0)) then _S:=st;
End;
End;
End;//for r
End;
//============================
Begin
_S:=''; //_S= save string
ReadFile;
assign(output,'xau.out'); rewrite(output);
Process;
if (length(_S)>1) then write(_S)
else write('Khong tim duoc');
//close(output);
End.
Đăng nhận xét