zoukankan      html  css  js  c++  java
  • [字符串] 洛谷 P2264 情书

    题目描述

    为了帮助CYY,我们定义一个量化情书好坏的标准感动值。判断感动值的方法如下:

    1. 在情书的一句话中若含有给定词汇列表中的特定单词,则感动值加1,但每一单词在同一句话中出现多次感动值不叠加,不同单词不受影响。保证输入的单词不重复。
    2. 每句话以英文句号定界。
    3. 全文不区分大小写。

    输入输出格式

    输入格式:

    第一行包含一个数字n,表示导致感动值提升的词汇列表中单词的数量,随后n行是给定单词,每行一个。保证单词只包含英文字母。

    最后一行为情书正文,保证只包含以下几种字符: 英文字母、数字、空格、英文逗号、英文句号。

    输出格式:

    一个数字g,表示情书带来的感动值。

    输入输出样例

    输入样例#1: 
    3
    love
    so
    much
    I love you so much.
    
    输出样例#1:
    3

    说明

    对于所有的数据,保证1 ≤ n,m,k ≤ 100,每个单词不超过50字符,全文不超过1000字符。

    题解

    • 这么小的数据瞎搞,用map暴力做,注意逗号算单词分隔符,如果有句号就算另一句
    • 同一句的单词重复出现只计算一次贡献,再开个map来判重就好了

    代码

     1 #include <cstdio>
     2 #include <iostream>
     3 #include <cstring>
     4 #include <map>
     5 using namespace std;
     6 int n,ans,len,w;
     7 map <string,bool> mp,vis;
     8 string s,t;
     9 int main()
    10 {
    11     cin>>n;
    12     for (int i=1;i<=n;i++)
    13     {
    14         cin>>s,len=s.length();
    15         for (int j=0;j<len;j++) if (s[j]<'a') s[j]+='a'-'A';
    16         mp[s]=1;
    17     }
    18     getline(cin,s),getline(cin,s),len=s.length();
    19     for (int i=0;i<len;i++)
    20     {
    21         if (s[i]==',') s[i]=' ';
    22         if (s[i]!='.'&&s[i]!=' '&&s[i]<'a') s[i]+='a'-'A';
    23     }
    24     for (int i=0;i<len;i++)
    25         if (s[i]==' '||s[i]=='.')
    26         {
    27             t=s.substr(w,i-w),w=i+1;
    28             if (!vis[t]) vis[t]=1,ans+=mp[t];
    29             if (s[i]=='.') vis.clear();
    30         }
    31     printf("%d",ans);
    32 }
  • 相关阅读:
    使用SpringBoot校验客户端传来的数据
    在RestController中获取各种信息的方法
    SpringBoot的文件上传&下载
    Maximum upload size exceede上传文件大小超出解决
    在SpringBoot程序中记录日志
    使用IDEA配置SpringBoot热部署无效解决
    RESTful API是什么?
    IDEA如何配置jdk路径
    使用IDEA集成Spring框架时右下角警戒
    Spring框架各模块功能介绍
  • 原文地址:https://www.cnblogs.com/Comfortable/p/10440118.html
Copyright © 2011-2022 走看看