標籤:des style color os io 資料 ar 問題
單詞數Problem Descriptionlily的好朋友xiaoou333最近很空,他想了一件沒有什麼意義的事情,就是統計一篇文章裡不同單詞的總數。下面你的任務是協助xiaoou333解決這個問題。 Input有多組資料,每組一行,每組就是一篇小文章。每篇小文章都是由小寫字母和空格組成,沒有標點符號,遇到#時表示輸入結束。 Output每組只輸出一個整數,其單獨成行,該整數代表一篇文章裡不同單詞的總數。 Sample Input
you are my friend#
Sample Output
4set集合用法及特點: 1,set中的元素從小到大排列且和集合一樣沒有重複元素; 2,set<string>::iterator s.begin() s.end()#include<iostream># include<cstring>#include<cstdio># include<sstream># include<string>#include<set>using namespace std; string wen,str; set<string> dict;int main(){ while(getline(cin,wen)&&wen!="#") { stringstream ch(wen); //在文本串中找單個單詞 while(ch >>str) dict.insert(str); printf("%d\n",dict.size()); dict.clear(); } return 0;}
和用map差不多:
#include<iostream> # include<cstdio> # include<string> # include<map> # include<cstring> # include<sstream> using namespace std; map<string ,int> m; string str,ch;/* int main() { while(getline(cin,str)&&str!="#") { int len=str.size(); int i=0; m.clear(); while(i<len) { ch=""; while(i<len&&'a'<=str[i]&&str[i]<='z') ch+=str[i++]; if(ch!="") { m[ch]=1; } i++; } printf("%d\n",m.size()); } return 0; }*/int main(){ while(getline(cin,str)&&str!="#") { stringstream ss(str); m.clear(); while(ss>>ch) { m[ch]=1; } printf("%d\n",m.size()); } return 0;}