我想學習遞歸在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