このコードを最適化する必要があります。基本的には、文字列s1
のすべての文字が倍精度を考慮してs2
に含まれているかどうかを確認します。Pythonでこのコードを最適化する方法
s1, s2 = list(s1), list(s2)
for s in s2:
if s in s1:
s1.remove(s)
else:
return False
return True
(私は非常に新しいですが解決策があるが、今の私はかなり混乱し、イライラだ私はmap
、イテレータと発電機のいくつかの研究をした、と私は、これらの一つ以上に確信していますPythonには数週間しかかかりません)、このケースで何が最善の戦略であるかを理解する助けになるかもしれません。ありがとう!
このような場合はわかりません。 's1.remove(s)'は重複した文字のエラーを避けるためにのみ存在します。たとえば、 's1 = 'aabcd''と' s2 =' aaa''はfalseの間に 'True'を返します。 list1 - list2が私にどのように役立つでしょうか?私がこれを間違っている場合は、私に説明してください – AndTuf
あなたの予想される出力が何であるかは明確ではありません。 [mcve]を表示してください。 –
Pythonで 'in'の実装を知らないと、このコードはO(n^2)最悪のケースにつながりませんか? nlognの解決策は、それらが等しいかどうかをソートしてチェックすることです。 –