NOIP 2011 普及組 統計單詞數 stat.cpp
阿新 • • 發佈:2019-01-13
題目可以看這裡
看了看各位大佬的程式碼,只覺有些繁雜,特別是在比較單詞時,稍不留神便有了bug,全靠撞運氣AC。,這裡奉上
一篇好一點的。也無需用什麼神奇的資料結構或函式
#include<bits/stdc++.h> using namespace std; char t[15];int lt;//要找的單詞及其長度 char p[5000000];int lp;//文章及其長度 int ans=0,pl=0; int main() { //freopen("stat.in","r",stdin); gets(t+1);lt=strlen(t+1); gets(p+1);lp=strlen(p+1); for(int i=0;i<=lt;i++) { if(t[i]>'Z') t[i]-=32;//轉化為大寫,也可以用strlwr()一句全轉小寫\ if(t[i]==' ') t[i]='\0';//把每個單詞分隔開,方便比較 } for(int i=0;i<=lp;i++) { if(p[i]>'Z') p[i]-=32; if(p[i]==' ') p[i]='\0'; } for(int i=0;i<lp;i++) { if(!isalpha(p[i]))//要是一個完整的單詞 { if(strcmp(t+1,p+i+1)==0)//strcmp()兩字串相同返回0 { ans++; if(ans==1) { pl=i; } } } } if(ans==0) cout<<"-1\n"; else printf("%d %d\n",ans,pl); return 0; }
注:複製題解者勿入