zoukankan      html  css  js  c++  java
  • 05:统计单词数【NOIP2011复赛普及组第二题】

    05:统计单词数

    总时间限制: 
    1000ms
     
    内存限制: 
    65536kB
    描述

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

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

    输入
    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
    来源
    NOIP2011复赛 普及组 第二题
    下面这个代码在洛谷提交可以通过,但是再codevs提交时运行时错误,我也没搞懂什么原因,哪位朋友知道的在评论区讲一声。
     1 #include<stdio.h>
     2 #include<string.h>
     3 int main()
     4 {
     5     char str1[15],str2[1000005],str3[15]="";
     6     int count=0,firstPosition=0;
     7     char *p=NULL;
     8     int i,j,flag;
     9     
    10     scanf("%s",str1);
    11     getchar();//接收scanf("%s",str1);的回车符号 
    12     gets(str2);
    13     
    14     p=str1;
    15     while(*p!='')//将str1转为小写 
    16     {    if(*p>='A'&&*p<='Z') *p=*p+32;   p++;}
    17     
    18     p=str2;
    19     while(*p!='')//将str2转为小写 
    20     {   if(*p>='A'&&*p<='Z') *p=*p+32;   p++;}
    21     
    22     i=0;
    23     j=0;
    24     flag=0;//还没找到第一次出现的位置 
    25     while(str2[i]!='')
    26     {
    27         if(str2[i]>='a'&&str2[i]<='z')
    28         {
    29             str3[j]=str2[i];
    30             i++;
    31             j++;
    32         }
    33         else//遇到非字母的字符,认为是构成了一个新的单词 
    34         {
    35             str3[j]='';
    36             if(strcmp(str1,str3)==0)//若新的单词跟需要查找的单词一致 
    37             {
    38                 count++;
    39                 if(flag==0)//还没找到第一次出现的位置,这一次就是首次发现单词 
    40                 {
    41                     firstPosition=i-strlen(str1);
    42                     flag=1;
    43                 } 
    44             }
    45             j=0;
    46             i++;
    47         }
    48     }
    49     if(flag==0) printf("-1
    ");
    50     else 
    51         printf("%d %d
    ",count,firstPosition);
    52     return 0;
    53 }
  • 相关阅读:
    vue的组件名称问题
    vue引入js文件时报This dependency was not found:错误
    vue中input输入第一个字符时,光标会消失,需要再次点击才能输入
    vue中url带有#号键,去除方法
    vue路由机制导致的坑,坑,坑
    Python文件读取和数据处理
    python面向对象
    Python PIL库学习笔记
    汉诺塔的python 动画演示
    十九大报告词频分析
  • 原文地址:https://www.cnblogs.com/huashanqingzhu/p/5869565.html
Copyright © 2011-2022 走看看