0

ツールのみを使用して、2つのpython関数「a.union(b)」とa.intersect(b)を再作成する必要があります

追加; ポップ; 長さ;その間; i が範囲内にある場合。if-else; l[i] (リスト l の場合); とブーリーン

そして、引数として2つのリストを持つ関数を最後に持ち、最終的な順序付けされたリストを返します。例えば

a=[1.2.5.6]

b=[3.5.6.8.15]

f(a,b) と入力して [1.2.3.5.6.8.15] (union) を返し、g(a,b) と入力すると [5.6] のような結果が得られます。

リストの用語を連続して比較することでそれを実行しようとしましたが、その場合、一方のリストが短い場合、もう一方のリストの前に空になり、数値を何も比較しなくなります。while を使用しようとしましたが、両方ではなく一方のリストが空になっているかどうかしか確認できません。

あなたが私を助けることができればお願いします:s

Ps: 英語が苦手なので、私が犯した言葉の間違いを教えていただければ幸いです。

4

1 に答える 1

1

2 つの入力リストがソートされていると仮定できる場合、これはマージソートのマージ ステップにすぎません。そのためには、i と j の 2 つのインデックスが必要であり、両方ではなく、一度に 1 つを前方に移動します。それらの 1 つがリストの最後に達すると、2 つの while ループが必要になります。1 つは最初のリストから値を使い果たすまで取得し、もう 1 つは 2 番目のリストから値を使い果たすまで取得します。

于 2013-11-03T23:24:17.297 に答える