2014-06-07 34 views
1

我對空間複雜性有點困惑。這是O(1)空間複雜度還是O(N)複雜度? 由於我創建了一個大小爲n的字符串,我的猜測是空間複雜度是O(N)是否正確?空間複雜度O(1)存儲字符串

## this function takes in a string and returns the string 

def test(stringval): 
stringval2 = "" 
for x in stringval: 
    stringval2 = stringval2 + x 
return stringval2 

test("hello")} 

回答

0

是的,這是正確的。存儲長度爲n的新字符串的空間複雜度爲Θ(n),因爲每個單獨的字符都必須存儲在某處。原則上,您可以通過注意stringval2最終成爲stringval1的副本並可能使用寫入時複製或其他優化來減少空間使用量,但在這種情況下,沒有理由懷疑是這種情況。

希望這有助於!

相關問題