字符串练习-统计单词数
来源:互联网 发布:淘宝现在交易额多少了 编辑:程序博客网 时间:2024/05/24 00:14
Description
一般的文本编辑器都有查找单词的功能,该功能可以快速定位特定单词在文章中的位置,有的还能统计出特定单词在文章中的次数。
现在,请你编程实现这一功能,具体要求是:给定一个单词,请你输出它在给定的文章中出现的次数和第一次出现的位置。注意:匹配单词时,不区分大小写,但要求完全匹配,即单词必须与文章中某一独立残次在不区分大小写的情况下完全相同(参见样例1),如果给定单词仅是文章中某一单词的一部分则不算匹配(参见样例2)。
Input
输入文件共2行。
第1行为一个字符串,其中只包含字母,表示给定单词;
第2行为一个字符串,其中只可能包含字母和空格,表示给定的文章。
Output
只有1行,如果在文章中找到给定单词则输出两个整数,两个整数之间用一个空格隔开,分别是单词在文章中出现的次数和第一次出现的位置(即在文章中第一次出现时,单词首字母在文章中的位置,位置从0开始);如果单词在文章中没有出现,则直接输出一个整数-1。
Sample Input
Sample Output
HINT
1<=单词长度<=10。
1<=文章长度<=10,000,000。
code:
#include <iostream>
#include<algorithm>
#include<string.h>
#include<stdio.h>
#include<math.h>
using namespace std;
int main(){
//freopen("input.txt","r",stdin);
string s1,s2;
int total,f,k;
while(getline(cin,s1)){
getline(cin,s2);
total=0;
f=-1;
int i=0,j=0;
for(i=0;i<s2.length();i++){//while(i<s2.length())
while(s2[i]==' ') i++;
j=0;
while(i<s2.length()&&j<s1.length()){
if(s2[i]==s1[j]||fabs(s2[i]-s1[j])==32){
i++;//s2[i]==(char)(s1[j]+32)||s2[i]==(char)(s1[j]-32)
j++;
continue;
}
break;
}
if(j==s1.length()&&s2[i]==' ' ||j==s1.length()&&i==s2.length()){
total++;
if(f==-1)
f=i-s1.length();
}else{
while(i<s2.length()&&s2[i]!=' ') i++;
}
}
if(total==0)
cout<<"-1"<<endl;
else
cout<<total<<" "<<f<<endl;
}
return 0;
}
- 字符串练习-统计单词数
- 字符串相关的操作练习 翻转单词;统计单词数;逆向输出单词串
- 统计字符串的单词数
- [字符串]FJSDFZOJ 1075 统计单词数
- hdu_2072_统计单词数_set_检测字符串
- 统计字符串中的单词数(24)
- 笔试题 统计字符串单词数
- 新手村 简单字符串 统计单词数
- 统计录入字符串的字符总数,单词数和行数
- 统计单词数
- 统计单词数
- 统计单词数
- 统计单词数
- 统计单词数
- 统计单词数
- 统计单词数
- 统计文本单词数
- noip2001 统计单词数
- 最简单的win7基础上安装ubuntu方法__EasyBCD硬盘安装(免U盘)
- 教你认清MVC,MVP和MVVM三种模式
- 实现cell的动态的行高
- 习题22 到现在你学到了哪些东西
- UIKit和Core Graphics绘图——字符串,线条,矩形,渐变
- 字符串练习-统计单词数
- angular-file-upload
- javaScript函数使用
- POJ 1651 Multiplication Puzzle(区间dp)
- Linux命令常用之man
- String类内存分析
- 计算机网络——计算机网络概述(1)
- POJ3006
- Ubuntu 16.04中 Qt 5.6 中无法调用fcitx输入中文的问题