第1.7节 字符串操作

创建于20170311
原文链接:https://leetcode.com/articles/string-manipulation/

这一节其实就是说在java和python中,字符串是不可变的。因此如果在循环中有字符串连接的操作,要注意复杂度。通常是先copy字符串,然后再append字符串。
举了个例子:

String s = "";
for (int i = 0; i < n; i++) {
    s += "hello";
}

循环复杂度是O(N^2),为什么呢?
每次需要先copy原有字符串(n-1)*5次,然后再append5次,于是:

Paste_Image.png

所以,如果是java的话,可以使用可变的字符串对象StringBuilder来完成类似操作。

StringBuilder s = new StringBuilder();
for (int i = 0; i < n; i++) {
    s.append("hello");
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容