1 条题解
-
0
【例69.3】 字符串中的空格
解题思路
读n后先消耗该行换行,再逐行读取。空格累加删除次数,其他字符拼入对应结果串。因总次数必须先输出,需保存全部处理后行。
正确性说明
依题目给出的对应关系逐项处理,位置与原输入保持明确对应。每一步完成当前项的全部贡献,结束后得到所有位置或字符的目标结果。
易错点
全空格行删后为空串,仍输出一个空行。
复杂度
总字符数S,时间O(S),空间O(S)。
参考代码(C++11)
#include <bits/stdc++.h> using namespace std; int main() { ios::sync_with_stdio(false); cin.tie(nullptr); int n; cin >> n;cin.ignore(numeric_limits<streamsize>::max(),' ');vector<string>v(n);long long removed=0;for(int i=0;i<n;i++){string s;getline(cin,s);for(char c:s)if(c==' ')removed++;else v[i]+=c;}cout<<removed<<"\n";for(auto &s:v)cout<<s<<"\n"; return 0; }
- 1