Разбор задачи 163. Анаграммы
var
c:array['a'..'z'] of integer; { массив счетчиков
в качестве индекса используем буквы }
s:string;
ch:char;
i,sum:integer;
begin
readln(s); { ввод строки с анаграммой }
for i:=1 to length(s) do
inc(c[s[i]]); { или c[s[i]]:=c[s[i]]+1; }
readln(s); { ввод строки с расшифровкой }
for i:=1 to length(s) do
if s[i] <> ' ' then { для букв }
dec(c[s[i]]); { или c[s[i]]:=c[s[i]]-1; }
sum:=0; { количество лишних букв }
for ch:='a' to 'z' do
if c[ch]<0 then
begin
writeln(-1); { нет соответствия -
число букв ch в расшифровке больше, чем в анаграмме }
halt; { завершение программы }
end
else
inc(sum, c[ch]); { или sum:=sum+c[ch] }
writeln(sum);
end.