【洛谷】P1308 [NOIP2011 普及组] 统计单词数

简介: 然后要被查找的b字符串,可能会出现第二个样例中的情况,也就是字符串a是to,而字符串b的Ottoman,这样是不符合题意的。为了 解决这个问题,我们将字符串a首尾都加一个空格,同时将字符串b首尾都加一个空格(这里是为了让字符串b的首单词和尾单词前后均有空格)为了能持续找字符串b中的所有字符串a,我们用一个while循环,如果能找到,就每次从能找到的位置的下一个位置(也就是能找到的位置下标+1)开始找,并及时更新位置,同时计数。因为不区分大小写,所以可以将两个字符串a,b都转为小写(也可以都转为大写)。

1.题目描述

image.png

2. 思路分析

因为不区分大小写,所以可以将两个字符串a,b都转为小写(也可以都转为大写)。

然后要被查找的b字符串,可能会出现第二个样例中的情况,也就是字符串a是to,而字符串b的Ottoman,这样是不符合题意的。为了 解决这个问题,我们将字符串a首尾都加一个空格,同时将字符串b首尾都加一个空格(这里是为了让字符串b的首单词和尾单词前后均有空格)

然后就开始查找,一个字符串b查找另一个字符串a,我们可以使用s.find()函数,如果b.find(a)!=-1,说明能找到字符串a,否则说明找不到。

为了能持续找字符串b中的所有字符串a,我们用一个while循环,如果能找到,就每次从能找到的位置的下一个位置(也就是能找到的位置下标+1)开始找,并及时更新位置,同时计数。

3. 代码实现

#define _CRT_SECURE_NO_WARNINGS 1
#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define int long long
#define endl '\n'

signed main() {
   
   
    ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
    string a, b; 
    getline(cin, a);
    getline(cin, b);
    for (int i = 0; i < a.size(); i++) {
   
   
        if (a[i] >= 'A' && a[i] <= 'Z') a[i] += 32;
    }
    for (int i = 0; i < b.size(); i++) {
   
   
        if (b[i] >= 'A' && b[i] <= 'Z') b[i] += 32;
    }
    a = " " + a + " ";
    b = " " + b + " ";
    if (b.find(a) == -1) cout << -1 << endl;
    else {
   
   
        int st = b.find(a);
        int tmp = st;
        int cnt = 0;
        while (tmp != -1) {
   
   
            cnt++;
            tmp = b.find(a, tmp + 1);
        }
        cout << cnt << " " << st << endl;
    }
    return 0;
}

image.png

相关文章
|
Java 测试技术 Maven
maven 打jar包:mvn clean package
maven 打jar包:mvn clean package
353 7
overleaf 插入图片,引用图片,图标标题Fig与文章引用Figure不一致解决
overleaf 插入图片,引用图片,图标标题Fig与文章引用Figure不一致解决
10196 1
|
3月前
|
人工智能 负载均衡 API
Vercel 发布 AI Gateway 神器!可一键访问数百个模型,助力零门槛开发 AI 应用
大家好,我是Immerse,独立开发者、AGI实践者。分享编程、AI干货、开源项目与个人思考。关注公众号“沉浸式趣谈”,获取独家内容。Vercel新推出的AI Gateway,统一多模型API,支持自动切换、负载均衡与零加价调用,让AI开发更高效稳定。一行代码切换模型,告别接口烦恼!
365 1
Vercel 发布 AI Gateway 神器!可一键访问数百个模型,助力零门槛开发 AI 应用
|
Arthas Cloud Native Java
是谁在调用我?使用 arthas+jprofiler 做复杂链路分析
Arthas 是阿里巴巴开源的应用诊断利器,提供了 profiler 命令,可以生成热点火焰图。通过采样录制调用链路来做性能分析,极大提升了线上排查性能问题的效率。
是谁在调用我?使用 arthas+jprofiler 做复杂链路分析
|
C语言
数据结构基础详解(C语言):图的基本概念_无向图_有向图_子图_生成树_生成森林_完全图
本文介绍了图的基本概念,包括图的定义、无向图与有向图、简单图与多重图等,并解释了顶点度、路径、连通性等相关术语。此外还讨论了子图、生成树、带权图及几种特殊形态的图,如完全图和树等。通过这些概念,读者可以更好地理解图论的基础知识。
1045 8
|
存储 SQL 分布式计算
数仓架构师必知必会
数仓架构师必知必会
【洛谷 P1036】[NOIP2002 普及组] 选数 题解(深度优先搜索+判断质数+枚举子集)
**NOIP2002普及组选数问题**:给定$n$个整数和一个整数$k$,需找出所有$k$个数的组合,计算它们的和为素数的种类数。输入包含$n$和$k$,以及$n$个整数;输出是符合条件的组合数。例如,对于输入`4 3`和数组`[3, 7, 12, 19]`,输出为`1`。代码使用递归枚举子集并检查质数的方法。
484 0
|
存储 数据安全/隐私保护
[GESP样题 三级] 进制转换、春游、密码合规
[GESP样题 三级] 进制转换、春游、密码合规
561 0
|
关系型数据库 数据库 数据库管理
关系型数据库数据一致性和完整性
【5月更文挑战第8天】关系型数据库数据一致性和完整性
730 4
|
机器学习/深度学习 存储 算法
【博士每天一篇文献-算法】Machine Unlearning via Representation Forgetting With Parameter Self-Sharing
这篇论文提出了一种名为"表示遗忘反学习与参数自共享"(RFU-SS)的新方法,通过双目标优化问题的形式,在减少模型准确性降低的同时,有效地从训练好的机器学习模型中移除特定样本的影响。
347 0