プログラミングパズルは次のとおりです。
たとえば、文字列と対応する番号のペアのリストが与えられた場合、[[A,37],[B,27],[C,21],[D,11],[E,10],[F,9],[G,3],[H,2]]
次の方法で文字列のみを持つ別のリストを出力します。
文字列の総数は、入力データの対応する数と正確に等しくなければなりません。
シーケンス内で文字列が隣接して繰り返されてはならず、すべての文字列が出力リストに表示される必要があります。
次の文字列の選択は、2つのルールを超えない限り、ランダムに実行する必要があります。各ソリューションには、選択されるゼロ以外の確率が必要です。
組み合わせが不可能な場合、出力はになります
0
。
入力リストは任意の順序(ソート済みまたは未ソート)で指定でき、リスト内のストリングの長さは任意です。
上記のサンプル入力1のサンプル出力
[A,B,A,B,A,B,A,B,A,B,A,B,A,B,A,B,A,B,A,B,A,B,A,B,A,B,A,B,A,B,A,B,A,B,A,B,A,B,A,B,A,B,A,B,A,B,A,B,A,B,A,B,A,B,A,C,A,C,A,C,A,C,A,C,A,C,A,C,A,C,A,C,A,C,D,C,D,C,D,C,D,C,D,C,D,C,D,C,D,C,D,C,D,C,D,C,E,F,E,F,E,F,E,F,E,F,E,F,E,F,E,F,E,F,E,G,H,G,H,G]
入力サンプル2:
[[A,6],[B,1],[C,1]]
2番目の入力の出力:
0
ルールに基づいて可能なリストがないため
サンプル入力3:
[[AC,3],[BD,2]]
有効な出力: [AC,BD,AC,BD,AC]
無効な出力: [AC,BD,AC,AC,BD]
さらに説明が必要な場合は、コメントで私に伝えることをheしないでください、私はすぐにそれに応じて行動します。
これはcode-golfなので、各言語のバイト単位の最短コードが勝ちです!