zoukankan      html  css  js  c++  java
  • 洛谷

    P1308 统计单词数

    题目描述

    一般的文本编辑器都有查找单词的功能,该功能可以快速定位特定单词在文章中的位置,有的还能统计出特定单词在文章中出现的次数。

    现在,请你编程实现这一功能,具体要求是:给定一个单词,请你输出它在给定的文章中出现的次数和第一次出现的位置。注意:匹配单词时,不区分大小写,但要求完全匹配,即给定单词必须与文章

    中的某一独立单词在不区分大小写的情况下完全相同(参见样例1 ),如果给定单词仅是文章中某一单词的一部分则不算匹配(参见样例2 )。

    输入输出格式

    输入格式:

    22行。

    11行为一个字符串,其中只含字母,表示给定单词;

    22行为一个字符串,其中只可能包含字母和空格,表示给定的文章。

    输出格式:

    一行,如果在文章中找到给定单词则输出两个整数,两个整数之间用一个空格隔开,分别是单词在文章中出现的次数和第一次出现的位置(即在文章中第一次出现时,单词首字母在文章中的位置,位置从00 开始);如果单词在文章中没有出现,则直接输出一个整数-11。

    输入输出样例

    输入样例#1: 复制
    To
    to be or not to be is a question
    
    输出样例#1: 复制
    2 0
    
    
    输入样例#2: 复制
    to
    Did the Ottoman Empire lose its power at that time
    输出样例#2: 复制
    -1

     1 #include<bits/stdc++.h>
     2 using namespace std;
     3 
     4 int main()
     5 {
     6     string w;    //单词 
     7     string t;    //文章 
     8 
     9     getline(cin, w);
    10     getline(cin, t);
    11 
    12     for(int i = 0; i < w.length(); i++)    //将单词和文章中所有单词转换为小写字母 
    13     {
    14         w[i] = tolower(w[i]);
    15     }
    16 
    17     for(int i = 0; i < t.length(); i++)
    18     {
    19         t[i] = tolower(t[i]);
    20     }
    21 
    22     int sum = 0;    //记录出现的总次数 
    23     int pos;    //记录单词在文章第一次出现的位置 
    24     int i, j;    //循环变量 
    25     
    26     // w: to
    27     // t: wto hello to you tom
    28     
    29     for(i = 0; i <= t.size() - w.size(); i++)    //循环t串的0~(t-w)
    30     {
    31         for(j = 0; j < w.size(); ++j)    //t的字符,分别对其对其后面的w的长度位做比较 
    32         {
    33             if(t[i + j] != w[j])    //如果在w的长度之内有不相等的,直接跳出循环 
    34             {
    35                 break;
    36             }
    37 
    38             if(i > 0 && t[i-1] != ' ')    //不在开头的时候,如果它前面不是空格,就表示它不是单独的单词 
    39             {
    40                 break;
    41             }
    42         }
    43 
    44         if(j == w.size() && (t[i + j] == ' ' || i+j == t.size()))    //将w匹配完,并且下一个就是空格,或者i+j刚好到了t的最后(最后的单词没有空格) 
    45         {
    46             sum++;
    47 
    48             if(sum == 1)    //记住第一次出现的位置 
    49             {
    50                 pos = i;
    51             }
    52         }
    53 
    54     }
    55 
    56     if(sum == 0)
    57     {
    58         cout << -1;
    59     }
    60     else
    61     {
    62         cout << sum << " " << pos;
    63     }
    64 
    65     return 0;
    66 }
  • 相关阅读:
    监控Redis集群
    host主机监控规则
    Prometheus自身的监控告警规则
    Prometheus alerts 各种告警规则
    Elasticsearch官方文档离线访问实操指南
    Ceph 存储集群
    采用阿里云 yum的方式安装ceph
    设置HTTP请求自动跳转HTTPS
    jumpserver 2222端口的使用
    安装jumpserver 2.1.2版本遇到的坑
  • 原文地址:https://www.cnblogs.com/WindSun/p/10582214.html
Copyright © 2011-2022 走看看