2021-2022蓝桥杯寒假集训训练 - 问题 H: 图片收集者

传送门


图片收集者

时间限制:1秒
空间限制:256M


题目描述

小T喜欢收集图片。

有次她阅读英语短文的时候,突发奇想,想要统计一下短文中字母“img”出现的次数。

AI小T当然不会手动统计“img”的出现次数,而是写了一段程序来统计。


输入描述

输入共有一个样例,包括多行,可以理解为一篇文章。

数据保证输入不超过512k

本题数据爬取了70个网页源码,具有一定程度的随机性


输出描述

输出给定“文章”*包含多少个“img”


样例一

输入

img is the abbreviation of image

输出

1

题目分析

模拟即可。对于C语言,我们可以把文章的每一行看成是一个字符串,只需要遍历一遍每个字符串,看看其中有多少个“img”即可。

对于Python,可以直接输出len(article.split("img")) - 1。因为字符串中每包含一个“img”,split出来的列表就会多一个元素。


AC代码

C++

#include <bits/stdc++.h>
using namespace std;
#define mem(a) memset(a, 0, sizeof(a))
#define dbg(x) cout << #x << " = " << x << endl
#define fi(i, l, r) for (int i = l; i < r; i++)
#define cd(a) scanf("%d", &a)
typedef long long ll;

const string toFind = "img";

int main() {
    // freopen("LetMeFly_Reptile005.in", "r", stdin);
    int ans = 0;
    string s;
    while (cin >> s) {
        for (int i = 0; i + toFind.size() - 1 < s.size(); i++) {
            bool is = true;
            for (int j = 0; j < toFind.size(); j++) {
                if (s[i + j] != toFind[j]) {
                    is = false;
                    break;
                }
            }
            if (is) {
                ans++;
            }
        }
    }
    cout << ans << endl;
    
    return 0;
}

Python

ans = 0
while True:
    try:
        s = input()
    except:
        break
    ans += len(s.split("img")) - 1
print(ans)

原创不易,转载请附上原文链接哦~
Tisfy:https://letmefly.blog.csdn.net/article/details/123077124

上一篇:Neovim开发Golang示例


下一篇:学习笔记——再次学习JavaScript