Cho xâu S độ dài không quá 10^6 ('a' -> 'z'). Đếm có bao nhiêu kí tự xuất hiện trong S và số lần xuất hiện nhiều nhất Yêu cầu: Dùng file

2 câu trả lời

Const Fi='DSTR.INP';
      Fo='DSTR.OUT';
Var f,g: text;
    St: ansistring;
    dem: array['a'..'z'] of longint;
    A: array[1..1000000] of ansistring;
    k: char;
    i: longint;
    max,d,n: qword;
Begin
        Assign(f,Fi); Reset(f);
        Assign(g,Fo); Rewrite(g);

        n:=0;
        While not eof(f) do
        Begin
                inc(n);
                Readln(f,A[n]);
        End;

        St:='';
        For i:=1 to n do
                St:=St+A[i];

        For k:='a' to 'z' do
                dem[k]:=0;
        For i:=1 to length(St) do
                For k:='a' to 'z' do
                        If St[i]=k then inc(dem[k]);
        d:=0; max:=0;
        For k:='a' to 'z' do
        Begin
                If dem[k]<>0 then inc(d);
                If dem[k]>max then max:=dem[k];
        End;

        Writeln(g,d);
        Write(g,max);
        Close(f);
        Close(g);
End.

uses crt;
var n,i,m,j,kt,t,max:longint; d:text; a,b:string;
begin
clrscr;
assign(d,'input.pas');reset(d);
readln(d,a); n:=length(a);
close(d);
assign(d,'output.pas'); rewrite(d);
   for i:=1 to n do
       begin
          kt:=0;
          for j:=1 to m do If a[i]=b[j] then kt:=1;
          If kt=0 then begin inc(m); b[m]:=a[i]; end;
       end;
   writeln(d,m);
   max:=0;
   for i:=1 to m do
      begin
         t:=0;
         for j:=1 to n do If b[i]=a[j] then inc(t);
         If t>max then max:=t;
      end;
   writeln(d,max);
   close(d);
readln
end.

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