私はこの分野の仕事に従事していません。自分でプログラムを書いています。上記の問題に遭遇すると、数日間悩まされています。助けてください。
単一の解決策のアイデアを提供します。
まず最初の要素が A である配列を見つけて取り出し、候補配列と名前を付けます
次に、候補配列の 1 つを選択し、現在の配列と結果配列を定義して、現在の先頭と末尾の合計結果を保存します ([A,B] や [[A,B], [B,C]] など) , もちろん、現在の配列を使用する必要はありません。ここで便宜的な説明をします。
次に、最初の文字が A である配列 ([B,C] など) がわかるまで arr をループします。この結果配列は [A,C] に折りたたむことができます。次に、もちろん [B, C] を結果配列に保存し、[B, C] を arr から削除する必要があります。
その後、グループ化後に現在の配列が長さ 0 に折りたたまれていれば、ドラゴンが見つかったことを意味し、結果を出力できます。
しかし、それが見つからない場合、[B, C] には解がないことを意味し、結果の配列と現在の配列は前のステージに返され、[B, C] は arr に追加されなくなります。それは答えの一つにはなり得ないからです。その後、このプロセスを繰り返し続けます。
画像点の説明は、[A、B、B、C、C、D] が結果を見つけることができないことがわかり、[A、B、B、C] にフォールバックし、その後、結果が見つからないことを示しています。 [ A,B] にフォールバックし続けます。等々。
最後までご覧ください。
複数の解釈がある場合でも、まったく同じ解決策になります。面倒すぎる。
これは徹底的な演習です...私が思いつくアイデアは、2 つの端を選択し、中央に向かって徹底的に検索することです。可能性の各ペアを記録します (ロックされており、繰り返し選択できないことに注意してください)。キャッチできればOKです結果の長さも不確実で、順序も不確実なので、これはさらに複雑です...
再帰を書くのに時間がかかり、文字が 1 回しか出現しない場合は、対応する文字のペアが元のデータから削除されます。
単一の解決策のアイデアを提供します。
まず最初の要素が A である配列を見つけて取り出し、候補配列と名前を付けます
次に、候補配列の 1 つを選択し、現在の配列と結果配列を定義して、現在の先頭と末尾の合計結果を保存します ([A,B] や [[A,B], [B,C]] など) , もちろん、現在の配列を使用する必要はありません。ここで便宜的な説明をします。
次に、最初の文字が A である配列 ([B,C] など) がわかるまで arr をループします。この結果配列は [A,C] に折りたたむことができます。次に、もちろん [B, C] を結果配列に保存し、[B, C] を arr から削除する必要があります。
その後、グループ化後に現在の配列が長さ 0 に折りたたまれていれば、ドラゴンが見つかったことを意味し、結果を出力できます。
しかし、それが見つからない場合、[B, C] には解がないことを意味し、結果の配列と現在の配列は前のステージに返され、[B, C] は arr に追加されなくなります。それは答えの一つにはなり得ないからです。その後、このプロセスを繰り返し続けます。
画像点の説明は、[A、B、B、C、C、D] が結果を見つけることができないことがわかり、[A、B、B、C] にフォールバックし、その後、結果が見つからないことを示しています。 [ A,B] にフォールバックし続けます。等々。
最後までご覧ください。
複数の解釈がある場合でも、まったく同じ解決策になります。面倒すぎる。
これは徹底的な演習です...
私が思いつくアイデアは、2 つの端を選択し、中央に向かって徹底的に検索することです。
可能性の各ペアを記録します (ロックされており、繰り返し選択できないことに注意してください)。キャッチできればOKです
結果の長さも不確実で、順序も不確実なので、これはさらに複雑です...
再帰を書くのに時間がかかり、文字が 1 回しか出現しない場合は、対応する文字のペアが元のデータから削除されます。
リーリー