Cho chuỗi s in ra các ký tự xuất hiện trên 2 lần của xâu. Ct pascal giúp mình ạ. INP: aabccdde OUT: a c d

By Daisy

Cho chuỗi s in ra các ký tự xuất hiện trên 2 lần của xâu. Ct pascal giúp mình ạ.
INP: aabccdde
OUT: a c d

0 bình luận về “Cho chuỗi s in ra các ký tự xuất hiện trên 2 lần của xâu. Ct pascal giúp mình ạ. INP: aabccdde OUT: a c d”

  1. var stri: string; arr: array[‘A’..’z’] of byte; i: char; z: byte;
    begin
        write(‘Nhap chuoi dem: ‘);
        readln(stri);
        for i:=’A’ to ‘z’ do arr[i]:=0; 
        for z:=1 to length(stri) do inc(arr[stri[z]]);
        for i:=’A’ to ‘z’ do 
            if (arr[i]>=2) then write(i,’ ‘);
        readln
    end.

    Trả lời
  2. *Cách 1: dùng đếm tần suất từng cái, sẽ hơi lâu

    program tan_suat;

    uses crt;

    var s:string;

          kt:array[1..255] of boolean;

          i,d:byte;

    procedure dem(c:char);

    var j:byte;

    begin

           d:=0;

           for j:=1 to length(s) do

                  if s[j]=c then

                         begin

                                inc(d);

                                kt[j]:=false;

                         end;

     end;

    BEGIN

           clrscr;

           write(‘Nhap xau: ‘);  readln(s);

           fillchar(kt,sizeof(kt),true);

           for i:=1 to length(s)-1 do

                  begin

                         if kt[i] then

                                begin

                                     dem(S[i]);

                                     if d>=2 then write(s[i],’ ‘);

                                end;

                  end;

           readln;

    end.

    *Cách 2: cũng đếm từng kí tự nhưng chỉ chạy 1 vòng lặp để đếm

    program tan_suat;

    uses crt;

    var s:string;

         A:array[‘a’..’z’] of byte;

         i:byte;

         kt:char;

    begin

           clrscr;

           write(‘Nhap xau: ‘);  readln(s);

           fillchar(A,sizeof(A),0);

           for i:=1 to length(s) do

                  inc(A[s[i]]);

           for kt:=’a’ to ‘z’ do

                  if A[kt]>=2 then write(kt,’ ‘);

           readln;

    end.

    Trả lời

Viết một bình luận