次の手順で生成できる番号の順列となるように、長さの前付加シーケンスを定義します。n
1, 2, ..., n
番号から始め
1
ます。番号ごと
2
にn
列(いずれかの最初や最後に、この数場所、先頭に追加または追加して、シーケンスの名前の由来)。
たとえば、これは長さ4のprepend-appendシーケンスを生成する有効な方法です。
1
21 [beginning]
213 [end]
2134 [end]
あなたの仕事は、入力としてn
から3
を取得するプログラムまたは関数を構築し、辞書式順序30
で長さのすべての追加/追加シーケンスを印刷または返すn
ことです(リストではなく文字列を出力する場合、9を超える数が表されます文字として、文字a-u
列の長さを保持します)。たとえば、これは次の順序ですn = 4
。
1234 [RRR]
2134 [LRR]
3124 [RLR]
3214 [LLR]
4123 [RRL]
4213 [LRL]
4312 [RLL]
4321 [LLL]
一般に、lengthの2 n-1の前置/後置置換がありますn
。
コード内の言語で組み込みの並べ替え関数を使用することはできません。任意の言語でこれを行う最短のプログラムが勝ちます。
a-u
。数字のリストだけを出力できますか?