Java:循环字符串长度时间复杂度

标签 java string for-loop time-complexity big-o

我正在学习大 O 表示法,想知道这个 for 循环的时间复杂度是多少。

public int loop(String text)
{
    int result = 0;

    for (int i = 0; i < text.length(); i++)
    {   
        result += text.charAt(i);   
    }

    return result;

}

我不确定时间复杂度是 O(n) 还是 O(1)。我知道循环是否会进入 n 我会假设时间复杂度为 O(n) 但我不确定 text.length() 是否意味着同样的事情。

最佳答案

令 n 为字符串中的字符数。 你的循环显然迭代了 n 次(因为 text.length() == n),每次迭代都在做不断的工作(加法)。

你的循环应该是 O(n)

编辑:其他答案是错误的。您不会返回字符串,也不会附加到 StringBuilder。您正在添加每个 ASCII 字符的 int 值,并返回总数。

关于Java:循环字符串长度时间复杂度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49640731/

相关文章:

java - Map 的 putIfAbsent 实现中的冗余分配

c++,通过使用for循环在 map 内部存储键和值

string - 如何格式化字符串以用作 MATLAB 中的结构字段名称?

string - h :inputText which is bound to String property is submitting empty string instead of null

c# - 使用动态值构造的名称定义对象

r - 如何根据 R 数据帧上的列名称进行两两列比较?

java - 如何以一种形式在两个保管箱中传递两个列表

Java/Erlang : Diffie Hellman Key Exchange not Working

Java 正则表达式 : Extracting a Version Number

android - 寻找一种 GC 友好的方式来频繁替换子字符串