toCharArray()是否占用Big O中的空间

问题描述 投票:1回答:1

[在计算算法的空间复杂度时,我们被告知找出额外空间的最简单方法是创建数据结构,如Set,Map,Stack等。

以下面的代码为例,它崇敬字符串(在Java中)

private String reverse(String string){

    if (string == null || string.length() == 0) return string;

    char[] strArray = string.toCharArray(); // Does this consume space?

    int first = 0, last = strArray.length - 1;

    while (first < last){
        char temp = strArray[first];
        strArray[first++] = strArray[last];
        strArray[last--] = temp;
    }


    return String.valueOf(strArray);
}

将str转换为字符数组会消耗空间

java arrays string big-o space-complexity
1个回答
1
投票

根据String's javadocString创建“一个新分配的字符数组,其长度是此字符串的长度,其内容被初始化为包含此字符串表示的字符序列”。因此,调用toCharArray具有O(n)空间复杂度。

© www.soinside.com 2019 - 2024. All rights reserved.