题目描述

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

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

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

输入输出格式

输入格式:

共2行。

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

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

输出格式:

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

输入输出样例

输入样例#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≤单词长度≤10。

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

noip2011普及组第2题

先了解几个函数:

tolower()  a[i]=tolower(a[i])   将a字符转换为小写

toupper()  a[i]=toupper(a[i])  将a字符转换为大写

find()  int a=b.find(str,0)  返回str在字符串中第一次出现的位置(从index开始查找)如果没找到则返回string::npos


#include<iostream>
#include<algorithm>
#include<string>
#include<cstdio>
using namespace std;
int main() {
string a, b;
cin >> a;
getchar(); //吸收输入a时的空格,头文件<cstdio>
getline(cin,b); int lena = a.size(), lenb = b.size(); for (int i = 0; i<lena; ++i) {
a[i] = tolower(a[i]);
}
for (int i = 0; i<lenb; ++i) {
b[i] = tolower(b[i]);
} a = ' ' + a + ' ';
b = ' ' + b + ' '; if (b.find(a) == string::npos) { //找不到
cout << -1 << endl;
}
else {
int cnt = 0, ans = b.find(a),t=b.find(a);
while (t != string::npos) {
cnt++;
t = b.find(a, t + 1);
}
cout << cnt << ' ' << ans << "\n";
}
return 0;
}

  

统计单词数:string函数使用的更多相关文章

  1. 使用jdk8 stream 统计单词数

    在我的SpringBoot2.0不容错过的新特性 WebFlux响应式编程里面,有同学问如何使用stream统计单词数.这是个好例子,也很典型,在这里补上. 下面的例子实现了从一个文本文件读取(英文) ...

  2. 统计单词数(WordCount)

    1.首先新建两个文件夹: 往文件夹添加内容: 2.启动hadoop-查看是否启动成功. 3.先对nameNode进行初始化. 4.查看hadoop下面有哪些文件. 5.在hadoop目录下创建inpu ...

  3. 洛谷 P1308 统计单词数【string类及其函数应用/STL】

    题目描述 一般的文本编辑器都有查找单词的功能,该功能可以快速定位特定单词在文章中的位置,有的还能统计出特定单词在文章中出现的次数. 现在,请你编程实现这一功能,具体要求是:给定一个单词,请你输出它在给 ...

  4. codevs 1131 统计单词数

    #include<iostream> #include<string> using namespace std; int main() { string s, s0; getl ...

  5. 05:统计单词数【NOIP2011复赛普及组第二题】

    05:统计单词数 总时间限制:  1000ms 内存限制:  65536kB 描述 一般的文本编辑器都有查找单词的功能,该功能可以快速定位特定单词在文章中的位置,有的还能统计出特定单词在文章中出现的次 ...

  6. AC日记——统计单词数 openjudge 1.12 5

    05:统计单词数 总时间限制:  1000ms 内存限制:  65536kB 描述 一般的文本编辑器都有查找单词的功能,该功能可以快速定位特定单词在文章中的位置,有的还能统计出特定单词在文章中出现的次 ...

  7. noip2011普及组——统计单词数

    统计单词数 时间限制:1 s 内存限制:128MB [问题描述]一般的文本编辑器都有查找单词的功能,该功能可以快速定位特定单词在文章中的位置,有的还能统计出特定单词在文章中出现的次数.现在,请你编程实 ...

  8. 题解 P1308 【统计单词数】

    小金羊发一篇不一样的题解: 这个题解不是讲解法的,是讲算法的... 众所周知,string在中被定义为是类型, 这意味着我们可以将它作为int一样的类型使用. 并且还有神奇的加减法: string s ...

  9. 字符串--P1308 统计单词数

    题目描述 一般的文本编辑器都有查找单词的功能,该功能可以快速定位特定单词在文章中的位置,有的还能统计出特定单词在文章中出现的次数. 现在,请你编程实现这一功能,具体要求是:给定一个单词,请你输出它在给 ...

随机推荐

  1. win8开发

    http://msdn.microsoft.com/library/default.aspx

  2. JS异步编程 (1)

    JS异步编程 (1) 1.1 什么叫异步 异步(async)是相对于同步(sync)而言的,很好理解. 同步就是一件事一件事的执行.只有前一个任务执行完毕,才能执行后一个任务.而异步比如: setTi ...

  3. 第三天-零基础学习python

    1.回忆.列表方法,append(),extend(),insert() 2.列表获取元素: >>> member = ['HU','YU','HUYAN','HUJIAMU']   ...

  4. 键盘录入6个int类型的数据存入数组arr中,将arr数组中的内容反转...

    一.有一道很有意思的数组操作相关编程题,闲来无事用JS解决了一下,问题描述如下: (1) 键盘录入6个int类型的数据存入数组arr中: (2) 将arr数组中的内容反转: (3) 将反转后的数组角标 ...

  5. 浅析MySQL 5.7组复制技术(Group Replication)

          Group Replication is know as an up to date HA(High Availablity) solution which is supported in ...

  6. 日常工作之Zabbix源码编译,兼容mysql5.6

    原文链接:http://www.leleblog.top/daily/more?id=6 Zabbix源码编译 环境: centOS7.mysql5.6.21(已存在). 任务简述: 服务器搭建zab ...

  7. 第3天 Java基础语法

    第3天 Java基础语法 今日内容介绍 引用数据数据类型(Scanner.Random) 流程控制语句(if.for.while.dowhile.break.continue) 引用数据类型 Scan ...

  8. 20145202马超《java》【课堂实验】P98测试

    当时在加水印所以没来得及提交,然而我回宿舍第一时间就提交了,希望老师额能够看到

  9. 天津Uber优步司机奖励政策(1月4日~1月10日)

    滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不用抢单:http://www.cnblogs.com/mfry ...

  10. JAVA面试中问及HIBERNATE与 MYBATIS的对比

    第一方面:开发速度的对比 就开发速度而言,Hibernate的真正掌握要比Mybatis来得难些.Mybatis框架相对简单很容易上手,但也相对简陋些.个人觉得要用好Mybatis还是首先要先理解好H ...