top1编程
← 返回题目
题解

字符串处理器

1 条题解

  • 0
    @ 2026-8-5 14:38:11

    解题思路

    小童要开发一个"文字处理软件",给它一个指令和两个字符串 s1、s2,它要按指令处理,最后输出 s1 的结果。

    可以把这想象成一个小加工厂,厂长(指令 op)决定怎么处理两段文字:

    • 指令 1:把 s2 接到 s1 的后面,就像把两截绳子接在一起,用 += 就能完成;
    • 指令 2:把 s2 的内容复制给 s1,s1 原本的内容被覆盖掉;
    • 指令 3:先比较一下,如果 s1 和 s2 不相同,才把 s2 接到 s1 后面;如果相同就什么都不做。

    最后把处理好的 s1 输出。用 if...else if... 根据指令 op 选择对应的操作,清清楚楚。

    参考代码

    // 字符串处理器:按指令对s1和s2做拼接/复制/条件拼接
    #include <iostream>
    using namespace std;
    int main(){
        int op;
        string s1,s2;
        cin>>op>>s1>>s2; // 一个指令和两个字符串,均不含空格
        if(op==1) s1+=s2;        // 指令1:把s2拼接到s1后面
        else if(op==2) s1=s2;    // 指令2:把s2复制给s1
        else if(op==3){          // 指令3:两串不相同才拼接
            if(s1!=s2) s1+=s2;
        }
        cout<<s1<<endl; // 输出处理后的s1
        return 0;
    }
    

    复杂度分析

    • 时间复杂度:拼接时要把 s2 的字符复制过去,字符串长度不超过 50,所以是 O(n)(n 为字符串长度)。
    • 空间复杂度:只用两个字符串变量,是 O(1)。
    • 1