空间复杂度O(1)存储字符串

时间:2014-06-07 19:31:10

标签: string constants big-o complexity-theory notation

我对空间复杂性感到有点困惑。这是O(1)空间复杂度还是O(N)复杂度? 由于我正在创建一个大小为n的字符串,我的猜测是空间复杂度是O(N)是正确的吗?

## 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")}

1 个答案:

答案 0 :(得分:0)

是的,这是正确的。存储长度为n的新字符串的空间复杂度是Θ(n),因为每个字符必须存储在某处。原则上,您可以通过注意stringval2最终成为stringval1的副本并可能使用写时复制或其他优化来减少空间使用量,但在这种情况下,没有理由怀疑这一点是这样的。

希望这有帮助!