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