zoukankan      html  css  js  c++  java
  • NOIP201102统计单词数

    试题描述
       一般的文本编辑器都有查找单词的功能,该功能可以快速定位特定单词在文章中的位置,有的还能统计出特定单词在文章中出现的次数。现在,请你编程实现这一功能,具体要求是:给定一个单词,请你输出它在给定的文章中出现的次数和第一次出现的位置。注意:匹配单词时,不区分大小写,但要求完全匹配,即给定单词必须与文章中的某一独立单词在不区分大小写的情况下完全相同(参见样例1),如果给定单词仅是文章中某一单词的一部分则不算匹配(参见样例2)。
    输入
    第1行为一个字符串,其中只含字母,表示给定单词;第2行为一个字符串,其中只可能包含字母和空格,表示给定的文章。
    输出
    如果在文章中找到给定单词则输出两个整数,两个整数之间用一个空格隔开,分别是单词在文章中出现的次数和第一次出现的位置(即在文章中第一次出现时,单词首字母在文章中的位置,位置从0开始);如果单词在文章中没有出现,则直接输出一个整数-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:2 0
    例2:-1
    其他说明
    【数据范围】1≤单词长度≤10, 1≤文章长度≤1,000,000。 
     

    这道题不难,但是需要很严谨的思考,不然很容易错。

     1 #include <iostream>
     2 
     3 using namespace std;
     4 
     5 int main()
     6 {
     7     char word[12],essay[1010101];
     8     int len1,len2,i,j,first=-1,ans=0;
     9     bool flag=true;
    10     cin.getline(word,12);
    11     len1=strlen(word);
    12     for(i=0;i<len1;i++)//全部变成小写字母 
    13         if(word[i]<'a') word[i]+=32;
    14     cin.getline(essay,1000001);
    15     len2=strlen(essay);
    16     for(i=0;i<len2;i++) 
    17     {
    18         while(essay[i]==' ' && i<len2) i++;    //找首字母位置
    19         for(j=0;j<len1 && i+j<len2;j++)
    20             if(word[j]!=essay[i+j] && word[j]!=essay[i+j]+32) break;   //发现不匹配,退出 
    21         i=i+j;  //跳过这个单词,准备判断下一个 
    22         int temp=i;
    23         while(essay[i]!=' ' && i<len2) i++;  //比较结束位置 
    24         if(temp==i && flag && j==len1) {flag=false;first=i-len1;}  //记录第一个单词的位置 
    25         if(temp==i && j==len1) ans++;  //如果比较结束位置后面就是空格,则找到单词 
    26     }
    27     if(first<0) cout<<-1;  
    28     else   cout<<ans<<" "<<first;
    29     //system("pause");
    30     return 0;
    31 }
    NOIP201102统计单词数
  • 相关阅读:
    (转)金额转中文大写
    根据方法名称动态调用方法
    sqlplus 一次奇葩问题 HTTP proxy setting has incorrect value
    Oracle 中包的应用
    Scala开发环境搭建
    巧妙利用jQuery和PHP打造类似360安全卫士防火墙功能开关(类似iphone界面)效果
    jquery选择器的实现流程简析及提高性能建议!
    8个超级震憾的Jquery图片特效欣赏,考验你的浏览器!
    分享七个绚丽夺目的JQuery导航(还有苹果、猪八戒等),有图有真相
    jQuery多媒体播放器插件jQuery Media Plugin使用方法
  • 原文地址:https://www.cnblogs.com/YXY-1211/p/5679949.html
Copyright © 2011-2022 走看看