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