题解
字符串处理器
1 条题解
-
0
解题思路
小童要开发一个"文字处理软件",给它一个指令和两个字符串
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:把
- 1