说点String的trick
一
#include <iostream>
using namespace std;
string s1, s2, s3;
signed main() {
s1 = "114514" + '4';
s2 = (string) "114514" + '4';
s3 = "114514"s + '4';
cout << s1 << endl;
cout << s2 << endl;
cout << s3 << endl;
return 0;
}
输出
valid
1145144
1145144
s1是错误的用法,因为这时"114514"是指针,而+'4'会使指针后移。
解决方法如s2、s3。
二
s=s+t 时间复杂度 \(O(|s|+|t|)\)。
s+=t 时间复杂度为 \(O(|t|)\)。
三
strlen() 的时间复杂度 \(O(n)\)。

浙公网安备 33010602011771号