再帰を使用して文字列の文字の置換を計算するコードがあります。私は正常な尾の再帰と回文、階乗、小数から2進数への再帰を簡単に理解していますが、この再帰がどのように機能するかを理解する上で問題があります。 。ここPython再帰的置換プログラムの説明
コード
from __future__ import print_function
def permutef(s):
#print('\nIM CALLED\n')
out = []
if len(s) == 1:
out = [s]
else:
for i,let in enumerate(s):
#print('LETTER IS {} index is {}'.format(let, i))
#Slicing as not including that letter but includes every letter except that to perform the permutation
for perm in permutef(s[:i] + s[i+1:]):
print(perm)
out += [let + perm]
return out
per = permutef('abc')
print('\n\n\n', per, '\n\n\n')
は、私は、各円は各文字のためである紙に書いていたし、どのように対応するスタックが
をポップすることは、私の手書き私について質問しないでくださいですその素晴らしい(気難しさ)を知って
ここに出力されたスクリーンショットです
これはバックグラウンドでどのように機能するのかを理解したいと思っていますが、私はコンセプトを推測することはできません。
このウェブサイトは本当にありがとうございました:) –