说点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)\)

posted @ 2024-07-28 16:20  TangyixiaoQAQ  阅读(17)  评论(0)    收藏  举报