Помогите, как преобразовать данный алгоритм с помощью рекурсии ( в pascal abc)
Слова в тексте разделены пробелами. Какие символы есть в каждом слове?
Решение:
function simbols(st:string):set of char;
var
s:string;
n:integer;
mc:set of char;
begin
mc:=[];
n:=pos( ,st);
if n>0 then
begin
s:=copy(st,1,n-1);
Delete(st,1,n);
result:=simbols(st);
end
else s:=st;
foreach var c:char in s do mc:=mc+[c];
if result=[] then result:=mc else if mc<>[] then result:=result*mc;
end;
var
s:string;
begin
readln(s);
writeln(simbols(s));
end.

Function simbols(st:string):set of char;
var s:string;
n,i:integer;
nc:set of char;
begin
nc:=[];
n:=pos( ,st);
if n>0 then
begin
s:=copy(st,1,n-1);
Delete(st,1,n);
end
else
 begin
  s:=st;
  st:=;
end;
  for i:=1 to length(s) do  nc:=nc+[s[i]];
if length(st)>0 then
result:=nc*simbols(st)
 else result:=nc;
end;

Оцени ответ
Подпишись на наш канал в телеграм. Там мы даём ещё больше полезной информации для школьников!

Загрузить картинку