#5900.【例69.3】 字符串中的空格 题解 审核通过

CPP 刷题王 2024-05-05 16:23:25 22

解题思路

这道题目我们根据题意模拟,每次使用 getline 读入的时候使用一个字符串存储不是空格的字符,顺便统计一下空格的数量即可。

题目坑点

这道题不要混合使用字符串的查找函数,因为会超时(别以为想到了别人想不到的方法),不信我们可以分析一下。首先 ,而查找函数是 的,getline 也是 的,加起来就是 ,然后还有各种 的结构,加起来最坏时间就已经超过 秒了。

这道题目主要是为了让大家在数据很大的时候学会关流,以此提高程序运行速度。

例如:

int main() {
    ios::sync_with_stdio(false);    //用了这个就不要再使用 printf 、 scanf 和 puts 了,因为会产生一些错误。
    cin.tie(0), cout.tie(0);
    int n;
    cin >> n;
    string b;
    getline(cin, b);
    for (int i = 1; i <= n; i++) {
        getline(cin, a[i]);
        string b = "";
        for (int j = 0; j < a[i].size(); j++) {
            if (a[i][j] != ' ') {
                b += a[i][j];
            } else
                k++;
        }
        a[i] = b;
    }
}

需要注意的是在有字符串操作时,要么使用快读快写,要么使用关流,如果都使用会让你调很久的代码。

{{ vote && vote.total.up }}