• P1308 统计单词数


    P1308

    题目描述

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

    现在,请你编程实现这一功能,具体要求是:给定一个单词,请你输出它在给定的文章中出现的次数和第一次出现的位置。注意:匹配单词时,不区分大小写,但要求完全匹配,即给定单词必须与文章中的某一独立单词在不区分大小写的情况下完全相同(参见样例1 ),如果给定单词仅是文章中某一单词的一部分则不算匹配(参见样例2 )。

    输入输出格式

    输入格式:

      共2行。

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

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

    输出格式:

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

    输入输出样例

    输入:

    To
    to be or not to be is a question

    输出:

    2 0

    输入:

    to
    Did the Ottoman Empire lose its power at that time

    输出:

    -1

    代码:

     1 #include <bits/stdc++.h>
     2 using namespace std;
     3 string s1,s2;
     4 int main(){
     5     getline(cin,s1);
     6     getline(cin,s2);
     7     for(int i=0;i<s1.length();i++){
     8         s1[i]=tolower(s1[i]);
     9     }
    10     for(int i=0;i<s2.length();i++){
    11         s2[i]=tolower(s2[i]);
    12     }
    13     s1=' '+s1+' ';
    14     s2=' '+s2+' ';
    15     if(s2.find(s1)==string::npos)
    16         cout<<-1<<endl;
    17     else{
    18         int alpha=s2.find(s1);
    19         int beta=s2.find(s1),s=0;
    20         while(beta!=string::npos){
    21             ++s;
    22             beta=s2.find(s1,beta+1);
    23         }
    24         cout<<s<<" "<<alpha<<endl;
    25     }
    26     return 0;
    27 }
  • 相关阅读:
    python 模拟(简易)音乐播放器
    Python中的多态如何理解?(转)
    mysql踩得坑
    python简单模拟博客园系统
    04 信号量
    02 事件
    01 管道
    32 管道 事件 信号量 进程池 线程的创建
    02 验证进程之间是空间隔离的
    01 进程的其他方法
  • 原文地址:https://www.cnblogs.com/cruelty_angel/p/10383302.html
Copyright © 2020-2023  润新知