viết chương trình nhập vào một xâu S bất kỳ. Thông báo lên màn hình xâu con tăng S1 của xâu S có độ dài lớn nhất, trong trường hợp 2 xâu bằng nhau thì lấy xâu xuất hiện trước

1 câu trả lời

Uses crt;
Var S,Maxs,St:String; Max,I,J:Integer;
function Kt(S:String):Boolean;
Var i:Byte;
begin kt:=true;
 For i:=1 to length(s)-1 do 
 If Ord(S[i])>Ord(S[i+1]) then exit(false);
end;
begin
 Clrscr; Max:=-1;
 Write('S: ');Readln(S);
 For i:=1 to length(s) do 
  begin
   St:='';
    For j:=i to length(s) do 
     Begin 
     St:=St+S[j];
     If (Kt(st))And(Max<Length(St)) then 
     Begin
     Max:=Length(st);
     Maxs:=St;
     end;
  end;
  end;
Writeln(Maxs,' do dai lon nhat la: ',max);
readln
end.

Câu hỏi trong lớp Xem thêm