首页 > 其他分享 >CSP历年复赛题-P1308 [NOIP2011 普及组] 统计单词数

CSP历年复赛题-P1308 [NOIP2011 普及组] 统计单词数

时间:2024-05-29 13:55:31浏览次数:15  
标签:tolower NOIP2011 int getline CSP 单词 ++ P1308 size

原题链接:https://www.luogu.com.cn/problem/P1308

题意解读:给定单词a,文本b,在b中找a的个数,并找a第一次出现的位置,注意b中任何位置可能含有多个连续空格。

解题思路:

通过双指针找b中每一个单词的首、尾位置i,j,与a进行一一比较即可。

注意1:比较时不考虑大小写,可以统一转成小写字符tolower()

注意2:如果写比较函数,不要把文本b作为参数传递,否则会超时,除非加引用string &b

注意3:输入要用getline(cin, str)

100分代码:

#include <bits/stdc++.h>
using namespace std;

string a, b;
int cnt = 0, first = -1, pos = 0;

//判断a与b[l]~b[r-1]是否相等
bool cmp(int l, int r)
{
    if(a.size() != r - l) return false;
    for(int i = 0; i < a.size(); i++)
    {
        if(tolower(a[i]) != tolower(b[l + i]))
            return false;
    }
    return true;
}

int main()
{
    getline(cin, a);
    getline(cin, b);
    
    for(int i = 0; i < b.size(); i++)
    {
        if(b[i] != ' ') //找到一个单词的首字符
        {
            int j = i;
            while(b[j] != ' ' && j < b.size()) j++; //找到一个单词的末尾+1的位置
            if(cmp(i, j))
            {
                cnt++;
                if(first == -1) first = i;
            }

            i = j;
        }
    }
    
    if(cnt > 0) cout << cnt << " " << first;
    else cout << -1;

    return 0;
}

 

标签:tolower,NOIP2011,int,getline,CSP,单词,++,P1308,size
From: https://www.cnblogs.com/jcwy/p/18220123

相关文章

  • CSP历年复赛题-P1199 [NOIP2010 普及组] 三国游戏
    原题链接:https://www.luogu.com.cn/problem/P1199题意解读:人机轮流选将,电脑策略就是破坏可能和人已选能组成最大默契值的将,问人是否必胜,求出站的一对武将的默契值。解题思路:贪心题通常比较难以下手,经过分析,人肯定不可能选到每一行的最大默契值,因为电脑会破坏;进一步思考,那人能......
  • CCF-CSP真题《202403-1 词频统计》思路+python满分题解
    哇q(≧▽≦q),第一次写博客,请大家多多关照○| ̄|_ 看到没啥人提供202403的第一题解题思路及python代码,刚好写完,心血来潮想分享解题思路,就写下了这篇博客,有其他的编码版本,欢迎大家一起探讨呀(虽然我是算法菜鸟┗(T﹏T)┛,但有问题,我会尽力回答的!!!)好了废话不多说,上解题思路!大概想了......
  • 【CSP】202012-2 期末预测之最佳阈值
    2020年第21次CCF计算机软件能力认证  202012-2 期末预测之最佳阈值原题链接:期末预测之最佳阈值时间限制: 1.0秒空间限制: 512MiB目录题目背景题目描述输入格式输出格式样例1输入样例1输出样例1解释样例2输入样例2输出子任务解题思路AC代码期末预测之安......
  • CSP历年复赛题-P1190 [NOIP2010 普及组] 接水问题
    原题链接:https://www.luogu.com.cn/problem/P1190题意解读:n个人在m个水龙头排队接水,每个人接水量不同,接完水的排队的人可以接上,求总的接水时间。解题思路:1、先把前m个人安排在m个水龙头2、对于m后面的每一个人,都排在目前m个水龙头总接水时间最短的后面3、最后看m个水龙头最大......
  • CSP历年复赛题-P1179 [NOIP2010 普及组] 数字统计
    原题链接:https://www.luogu.com.cn/problem/P1179题意解读:统计l~r之间的整数包括多少个数字2。解题思路:枚举每一个数,对每一个数的每一位数字进行判断。100分代码:#include<bits/stdc++.h>usingnamespacestd;intl,r,ans;intmain(){cin>>l>>r;f......
  • CSP历年复赛题-P1058 [NOIP2008 普及组] 立体图
    原题链接:https://www.luogu.com.cn/problem/P1058题意解读:在m*n的平面上,输出若干个立方体,每一个格子可以有高度不同的多个立方体。解题思路:此题咋一看来,无从下手,仔细分析,其实一道模拟题。如何模拟?我们一起来解决一下几个关键问题:1、如何画图?要在平面上输出图案,本质上就是将......
  • CSP历年复赛题-P1067 [NOIP2009 普及组] 多项式输出
    原题链接:https://www.luogu.com.cn/problem/P1067题意解读:模拟法依次输出多项式内容即可,但是需要考虑的周全,主要有以下关键点:1、系数为0时不输出多项式2、第一个符号,只有负号才输出3、次数不为0时,不输出为1的系数;次数为0时,输出所有系数4、次数为1时,不输出次数;次数为0时不输......
  • 利用PyCSP3库(含大量全局约束)进行组合约束建模
    文章目录1.什么是PyCSP3?2.安装方法(Windows)2.1通过Google_colab直接运行2.2通过pip进行安装3.快速入门3.1声明变量3.2更新约束3.3定义目标3.4常用的全局约束1.什么是PyCSP3?PyCSP3是Python中的一个库,用于对组合约束问题进行建......
  • CSP历年复赛题-P1057 [NOIP2008 普及组] 传球游戏
    原题链接:https://www.luogu.com.cn/problem/P1057题意解读:n个人围一圈,从1开始传球m次,每次可以往左或右传,计算球再次传给1的方案数。解题思路:求方案数,通常就是DP问题,此题DP状态并不难想,如果实在不会,也可以通过DFS暴搜得部分分。1、DFS60分代码:#include<bits/stdc++.h>using......
  • CSP历年复赛题-P1055 [NOIP2008 普及组] ISBN 号码
    原题链接:https://www.luogu.com.cn/problem/P1055题意解读:验证ISBN最后一位是否正确。解题思路:直接模拟,不多说,上代码。100分代码:#include<bits/stdc++.h>usingnamespacestd;intmain(){strings;cin>>s;intcode=0;intcnt=0;for(inti......