zoukankan      html  css  js  c++  java
  • 洛谷P1308——单词统计

    https://www.luogu.org/problem/show?pid=1308

    题目描述

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

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

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

    输入输出格式

    输入格式:

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

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

    输出格式:

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

    输入输出样例

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

    说明

    数据范围

    1≤ 单词长度≤10。

    1≤ 文章长度≤1,000,000。

     1  #include<bits/stdc++.h>
     2 using namespace std;
     3 int main()
     4 {
     5     int f,pos1=-1,pos2,cnt=0,ans;//pos用于存储空格的位置和提取两个空格之间的字符串
     6     string st,st1,st2;
     7     getline(cin,st);
     8     getline(cin,st1);//读入必须用整行读入,cin遇到空格就会停止
     9  st1=st1+' ';//在最后加空格
    10     for(int i=0;i<st.size();i++)
    11         if(st[i]>='A'&&st[i]<='Z') st[i]+=32;
    12     for(int i=0;i<st1.size();i++)
    13         if(st1[i]>='A'&&st1[i]<='Z') st1[i]+=32;//转换小写字母
    14     for(int i=0;;i++)
    15     {
    16         pos2=st1.find(' ',pos1+1);//寻找空格的位置
    17         st2=st1.substr(pos1+1,pos2-(pos1+1));//提取两个空格之间的字符串
    18         if(st==st2)
    19         {
    20             if(cnt==0) ans=pos1+1;//记录单词首次出现的位置
    21             cnt++;    //统计单词出现数量
    22         }
    23         pos1=pos2;//把后空格位置的赋给前空格
    24         if(pos1==-1) break;
    25     }
    26     if(cnt==0) cout<<-1<<endl;
    27     else cout<<cnt<<" "<<ans;    
    28 }
  • 相关阅读:
    UVA 408 (13.07.28)
    linux概念之用户,组及权限
    Java实现 蓝桥杯 历届试题 网络寻路
    Java实现 蓝桥杯 历届试题 约数倍数选卡片
    Java实现 蓝桥杯 历届试题 约数倍数选卡片
    Java实现 蓝桥杯 历届试题 约数倍数选卡片
    Java实现 蓝桥杯 历届试题 约数倍数选卡片
    Java实现 蓝桥杯 历届试题 约数倍数选卡片
    Java实现 蓝桥杯 历届试题 九宫重排
    Java实现 蓝桥杯 历届试题 九宫重排
  • 原文地址:https://www.cnblogs.com/YingZhixin/p/6496206.html
Copyright © 2011-2022 走看看