創(chuàng)建于20170311
原文鏈接:https://leetcode.com/articles/string-manipulation/
這一節(jié)其實(shí)就是說(shuō)在java和python中椒惨,字符串是不可變的。因此如果在循環(huán)中有字符串連接的操作,要注意復(fù)雜度。通常是先copy字符串咐汞,然后再append字符串。
舉了個(gè)例子:
String s = "";
for (int i = 0; i < n; i++) {
s += "hello";
}
循環(huán)復(fù)雜度是O(N^2)腕够,為什么呢衡瓶?
每次需要先copy原有字符串(n-1)*5次,然后再append5次末患,于是:
Paste_Image.png
所以研叫,如果是java的話,可以使用可變的字符串對(duì)象StringBuilder來(lái)完成類似操作璧针。
StringBuilder s = new StringBuilder();
for (int i = 0; i < n; i++) {
s.append("hello");
}