【洛谷】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

相关文章
|
机器学习/深度学习 算法 PyTorch
大规模模型训练tricks集锦
大规模模型训练tricks集锦
692 1
Online Judge System 中术语含义: OJ、AC、WA、TLE、OLE、MLE、PE、RE、CE
Online Judge System 中术语含义: OJ、AC、WA、TLE、OLE、MLE、PE、RE、CE
4075 0
Online Judge System 中术语含义: OJ、AC、WA、TLE、OLE、MLE、PE、RE、CE
|
9月前
|
存储 机器学习/深度学习 人工智能
【AI系统】完全分片数据并行 FSDP
本文深入探讨了AI框架中针对权重数据、优化器数据和梯度数据的分布式并行实现,特别是在PyTorch框架下的具体方案。文章首先回顾了通用数据并行和分布式数据并行的概念,重点讨论了同步与异步数据并行的差异。接着,文章详细介绍了如何在PyTorch中实现弹性数据并行,特别是完全分片数据并行(FSDP)的机制,包括其如何通过分片模型状态和剩余状态来减少内存消耗,提高训练效率。此外,文章还探讨了混合精度训练、损失缩放和内存消耗估算等关键技术,为理解和实施高效的分布式训练提供了全面的指导。
281 9
【AI系统】完全分片数据并行 FSDP
|
12月前
|
C语言
数据结构基础详解(C语言):图的基本概念_无向图_有向图_子图_生成树_生成森林_完全图
本文介绍了图的基本概念,包括图的定义、无向图与有向图、简单图与多重图等,并解释了顶点度、路径、连通性等相关术语。此外还讨论了子图、生成树、带权图及几种特殊形态的图,如完全图和树等。通过这些概念,读者可以更好地理解图论的基础知识。
612 8
|
11月前
|
程序员 区块链
程序员职业发展路线图(完整版+珍藏版)
程序员职业发展路线图(完整版+珍藏版)
【洛谷 P1036】[NOIP2002 普及组] 选数 题解(深度优先搜索+判断质数+枚举子集)
**NOIP2002普及组选数问题**:给定$n$个整数和一个整数$k$,需找出所有$k$个数的组合,计算它们的和为素数的种类数。输入包含$n$和$k$,以及$n$个整数;输出是符合条件的组合数。例如,对于输入`4 3`和数组`[3, 7, 12, 19]`,输出为`1`。代码使用递归枚举子集并检查质数的方法。
354 0
|
存储 数据安全/隐私保护
[GESP样题 三级] 进制转换、春游、密码合规
[GESP样题 三级] 进制转换、春游、密码合规
471 0
|
关系型数据库 数据库 数据库管理
关系型数据库数据一致性和完整性
【5月更文挑战第8天】关系型数据库数据一致性和完整性
588 4
|
PyTorch 算法框架/工具 异构计算
PyTorch 2.2 中文官方教程(十八)(1)
PyTorch 2.2 中文官方教程(十八)
478 2
PyTorch 2.2 中文官方教程(十八)(1)
|
开发工具 git
出现“error: failed to push some refs to ‘https://github.com/****.git‘”,如何解决问题
出现“error: failed to push some refs to ‘https://github.com/****.git‘”,如何解决问题
1796 1