我想学习递归在Pascal和我有这样的代码反转递归的字符串:帕斯卡尔:反转字符串递归
Function Invert (ch:string) : string;
begin
if ch='' then
Invert:=''
else
Invert:=copy(ch,length(ch),1)+Invert(copy(ch,1,length(ch)-1));
end;
谁能给我解释一下这是怎么回事就在这里一步步。 谢谢。
我想学习递归在Pascal和我有这样的代码反转递归的字符串:帕斯卡尔:反转字符串递归
Function Invert (ch:string) : string;
begin
if ch='' then
Invert:=''
else
Invert:=copy(ch,length(ch),1)+Invert(copy(ch,1,length(ch)-1));
end;
谁能给我解释一下这是怎么回事就在这里一步步。 谢谢。
我希望这是一个练习,因为对字符串使用递归是一个非常糟糕的主意。有限的堆栈大小意味着,对于更长的字符串它将失败。 'copy','+'将需要大量的堆分配。最后但并非最不重要的一点是,更新freepascal函数调用中字符串的引用计数效率非常低。 – BeniBela