题目思路
1)巧用字符串数组,存储每个单词;
2)利用 cin 不会读入 空格,回车,TAB.
3)同时学到了 : 字符串之间可以直接比较: a[i] == b;
4)细嗦 : while(cin >> a[p])
以一段简单的程序为例 :
char a;
while (cin >> a)
{
cout << “0”;
}
对于这段的样例输入与输出:
输入: dalao
输出: 00000
string b;
while (cin >> b)
{
cout << “0”;
}
对于这段的样例输入与输出:
输入: dalao
输出: 0
通过对比以上两段code,我们可以看到当数据类型不同时,输出结果也不同;
同时结束条件都是 : ctrl + D , 同样如果cin没有读入东西,它遇到空格,换行也是不会读入的,当然也不会停止.
算法1
(暴力枚举) $O(n^2)$
时间复杂度
O(n^2)
参考文献
orz 题解dalao !
C++ 代码
#include <iostream>
#include <cstring>
using namespace std;
const int N = 1e5 + 10;
string a[N], b, c;
int p;
int main()
{
while (cin >> a[p])
{
p ++;
char x = getchar();
if (x == '\n') break;
}
cin >> b >> c;
for (int i = 0; i < p; ++ i)
{
if (a[i] == b) cout << c << ' ';
else cout << a[i] << ' ';
}
return 0;
}