1 条题解

  • 0
    @ 1986-1-22 1:12:53

    【例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

    信息

    ID
    451
    时间
    1000ms
    内存
    64MiB
    难度
    进阶
    标签
    递交数
    0
    已通过
    0
    上传者