0

繰り返しと再帰の両方の方法で文字列のすべての順列を印刷する方法を教えてくれる人はいますか? 私は VB.NET を好みますが、疑似コードだけでも問題ありません。

前もって感謝します。

4

1 に答える 1

3

再帰的アプローチは次のとおりです。

基本ケース:1文字の順列は1つの要素です。

一般的なケース:文字のセットの順列は、他の文字のすべての順列と連結された、各文字のリストです。

説明:

セットに1文字しかない場合は、その文字を返します。順列(a)-> a

セットに2つの文字がある場合、各文字に対してそれと残りの文字の順列を返します。

順列(ab)->

a +順列(b)-> ab

b +順列(a)-> ba

セット内の各文字について、残りの文字セットのperumationと連結された文字を返します。

順列(abc)->

a +順列(bc)-> abc、acb

b +順列(ac)-> bac、bca

c +順列(ab)-> cab、cba

于 2012-11-08T22:43:46.910 に答える