use*_*850 3 java string algorithm data-structures
从在线笔记中,我阅读了以下用于反转字符串的java代码片段,据称该字符串具有二次时间复杂度.在我看来,我的"for"循环只是迭代s的整个长度.它是如何导致二次时间复杂度的?
public static String reverse(String s)
{
String rev = new String();
for (int i = (s.length()-1); i>=0; i--) {
rev = rev.append(s.charAt(i));
}
return rev.toString();
}
Run Code Online (Sandbox Code Playgroud)
public static String reverse(String s)
{
String rev = " ";
for (int i=s.length()-1; i>=0; i--)
rev.append(s.charAt(i); // <--------- This is O(n)
Return rev.toString();
}
Run Code Online (Sandbox Code Playgroud)
我复制粘贴你的代码.我不知道你从哪里得到这个,但实际上String没有append方法.也许rev是一个StringBuilder或另一个Appendable.