Trang chủ Tin Học Lớp 9 Cho chuỗi s in ra các ký tự xuất hiện...

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 câu hỏi 1734201 - hoctapsgk.com

Câu hỏi :

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

Lời giải 1 :

*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.

Thảo luận

-- Cái bạn này thi hsg, nên mình nghĩ đưa ra cách tối ưu sẽ hay hơn

Lời giải 2 :

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.

Bạn có biết?

Tin học, tiếng Anh: informatics, tiếng Pháp: informatique, là một ngành khoa học chuyên nghiên cứu quá trình tự động hóa việc tổ chức, lưu trữ, xử lý và truyền dẫn thông tin của một hệ thống máy tính cụ thể hoặc trừu tượng (ảo). Với cách hiểu hiện nay, tin học bao hàm tất cả các nghiên cứu và kỹ thuật có liên quan đến việc mô phỏng, biến đổi và tái tạo thông tin.

Nguồn : Wikipedia - Bách khoa toàn thư

Tâm sự 9

Lớp 9 - Là năm cuối ở cấp trung học cơ sở, sắp phải bước vào một kì thi căng thẳng và sắp chia tay bạn bè, thầy cô và cả kì vọng của phụ huynh ngày càng lớn mang tên "Lên cấp 3". Thật là áp lực nhưng các em hãy cứ tự tin vào bản thân là sẻ vượt qua nhé!

Nguồn : ADMIN :))

Copyright © 2021 HOCTAP247