我需要優化此代碼,基本上會檢查字符串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''會返回'真',而它是假的。 list1 - list2如何幫助我?如果我有這個錯誤,請解釋我 – AndTuf
目前尚不清楚你的預期輸出是什麼。請顯示[mcve]。 –
不知道python中'in'的實現,這個代碼不會導致O(n^2)最壞的情況嗎? nlogn解決方案將排序並檢查它們是否相等。 –