题目地址:
https://www.acwing.com/problem/content/description/772/
输入一个字符串,以回车结束(字符串长度不超过 100 100 100)。该字符串由若干个单词组成,单词之间用一个空格隔开,所有单词区分大小写。现需要将其中的某个单词替换成另一个单词,并输出替换之后的字符串。
输入格式:
输入共
3
3
3行。
第
1
1
1行是包含多个单词的字符串
s
s
s;
第
2
2
2行是待替换的单词
a
a
a(长度不超过 100);
第
3
3
3行是
a
a
a将被替换的单词
b
b
b(长度不超过
100
100
100)。
输出格式:
共一行,输出将
s
s
s中所有单词
a
a
a替换成
b
b
b之后的字符串。
代码如下:
#include <iostream>
#include <sstream>
using namespace std;
int main() {
string s, a, b;
getline(cin, s);
cin >> a >> b;
stringstream ssin(s);
while (ssin >> s)
if (s == a) cout << b << ' ';
else cout << s << ' ';
return 0;
}
时空复杂度 O ( l s ) O(l_s) O(ls)。