第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Python any 和 in 和 for 循環(huán)的時間復(fù)雜度

Python any 和 in 和 for 循環(huán)的時間復(fù)雜度

夢里花落0921 2023-08-22 16:32:41
以下代碼行的時間復(fù)雜度(一般/最壞情況)是多少?s1 = "any-string-of-large-size" s2 = "anyother-string-of-larger-size"  if(any(x in s1 for x in s2)):    return "YES"return "NO"該代碼用于檢查 s1 和 s2 是否有共同的字母。我還希望有任何其他方法來實(shí)現(xiàn)這一目標(biāo),這可能會更有效。我發(fā)現(xiàn)使用此類庫函數(shù)時很難計算時間復(fù)雜度。有人還可以解釋一下如何計算嗎
查看完整描述

2 回答

?
精慕HU

TA貢獻(xiàn)1845條經(jīng)驗 獲得超8個贊

最好和最壞的情況分別是O(1)和O(|s1|*|s2|),其中|s1|和|s2|表示兩個字符串的長度。


事實(shí)上,你的代碼可以重寫為


for c2 in s2:

   for c1 in s1:

      if c1==c2:

          return "YES"

return "NO"

如果您只想檢查兩個字符串是否共享一個公共字符,您可以將其寫為


if set(s1) & set(s2):

   return "YES"

return "NO"

這將具有相同的最壞情況時間復(fù)雜度O(|s1|*|s2|),但平均情況是O(min(|s1|,|s2|)。


查看完整回答
反對 回復(fù) 2023-08-22
?
慕慕森

TA貢獻(xiàn)1856條經(jīng)驗 獲得超17個贊

(in)關(guān)鍵字的時間復(fù)雜度一般為O(N)。所以 s2 中的 x 是直接的 O(N)。由此得出總體復(fù)雜度為 O(N^2)。



查看完整回答
反對 回復(fù) 2023-08-22
  • 2 回答
  • 0 關(guān)注
  • 1511 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號