第1.7节|第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 【第1.7节|第1.7节 字符串操作】所以,如果是java的话,可以使用可变的字符串对象StringBuilder来完成类似操作。
StringBuilder s = new StringBuilder();
for (int i = 0;
i < n;
i++) {
s.append("hello");
}
推荐阅读
- [武侠]|[武侠] 剑魔传(97)
- 麒麟操作系统|麒麟操作系统 (kylinos) 从入门到精通 - 办公环境- 第三十三篇 PDF查看与编辑
- 【YC创业第八课观后感】|【YC创业第八课观后感】 创业要学会吃力不讨好
- 和弗兰克学写作第十期+Dreamcatcher+1/6
- David的Scalers第四轮新概念英语朗读持续训练20190426
- 《桔蔓少女》长篇连载(第二章|完颜银珠)
- 灌篮高手中的球员教练,谁实力第一()
- 字符串的相关操作
- 第三人称
- Unity自动构建(2)|Unity自动构建(2)|iOS编译遇过的依赖库、签名、第三方SDK的麻烦