日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

TZOJ 4865 统计单词数(模拟字符串)

發布時間:2025/5/22 编程问答 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 TZOJ 4865 统计单词数(模拟字符串) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

描述

一般的文本編輯器都有查找單詞的功能,該功能可以快速定位特定單詞在文章中的位置,有的還能統計出特定單詞在文章中出現的次數。

現在,請你編程實現這一功能,具體要求是:給定一個單詞,請你輸出它在給定的文章中出現的次數和第一次出現的位置。注意:匹配單詞時,不區分大小寫,但要求完全匹配,即給定單詞必須與文章中的某一獨立單詞在不區分大小寫的情況下完全相同,如果給定單詞僅是文章中某一單詞的一部分則不算匹配。

【數據范圍】

1 ≤ 單詞長度≤ 10。

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

【輸入輸出樣例 1 說明】

輸出結果表示給定的單詞 To 在文章中出現兩次,第一次出現的位置為0。

【輸入輸出樣例 2 說明】

表示給定的單詞 to 在文章中沒有出現,輸出整數-1。

輸入

第 1 行為一個字符串,其中只含字母,表示給定單詞;

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

輸出

只有一行,如果在文章中找到給定單詞則輸出兩個整數,兩個整數之間用一個空格隔開,

分別是單詞在文章中出現的次數和第一次出現的位置(即在文章中第一次出現時,單詞首字

母在文章中的位置,位置從0 開始);如果單詞在文章中沒有出現,則直接輸出一個整數-1。

樣例輸入

To
to be or not to be is a question

樣例輸出

2 0

提示

輸入樣例2

to

Did the Ottoman Empire lose its power at that time

輸出樣例2

-1

題意

如上

題解

模擬,詳情看代碼

代碼

1 #include<stdio.h> 2 #include<string.h> 3 using namespace std; 4 5 int main() 6 { 7 int pos=-1,ans=0,p=-1,k=0;//pos第一個位置,ans為個數,p為當前的位置,k為長度 8 char a[11],word[1000001],ch; 9 gets(a); 10 int la=strlen(a); 11 for(int i=0;a[i];i++) 12 if(a[i]>='A'&&a[i]<='Z') 13 a[i]+=32; 14 while(ch=getchar()) 15 { 16 p++; 17 if(ch>='A'&&ch<='Z') 18 ch+=32; 19 if(ch!=' '&&ch!='\n') 20 { 21 word[k++]=ch; 22 } 23 else 24 { 25 if(k==la)//長度相同 26 { 27 int f=1; 28 for(int i=0;i<k;i++) 29 { 30 if(a[i]!=word[i]) 31 { 32 f=0; 33 break; 34 } 35 } 36 if(f) 37 { 38 ans++; 39 if(pos==-1) 40 pos=p-k; 41 } 42 } 43 k=0; 44 } 45 if(ch=='\n') 46 break; 47 } 48 if(pos==-1)printf("-1\n"); 49 else printf("%d %d\n",ans,pos); 50 return 0; 51 }

轉載于:https://www.cnblogs.com/taozi1115402474/p/8417452.html

總結

以上是生活随笔為你收集整理的TZOJ 4865 统计单词数(模拟字符串)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。