輸入一行由小寫字母和空格組成的句子,計算相同單詞的個數。
需要注意的幾點:1) 如果一行句子只有空格,則有0個單詞。
2) 如果一行句子由空格開頭,不能算作單詞個數。
3) 如果兩個單詞之間有n個空格隔開,不能算作單詞個數。
4) 如果句子由n個空格結尾,不能算作單詞個數。
5) 相同的單詞的個數只是一個。
Problem Description
lily的好朋友xiaoou333最近很空,他想了一件沒有什麼意義的事情,就是統計一篇文章裏不同單詞的總數。下面你的任務是幫助xiaoou333解決這個問題。
Input
有多組數據,每組一行,每組就是一篇小文章。每篇小文章都是由小寫字母和空格組成,沒有標點符號,遇到#時表示輸入結束。
Output
每組只輸出一個整數,其單獨成行,該整數代表一篇文章裏不同單詞的總數。
Sample Input
you are my friend
#
Sample Output
4
|
#include<stdio.h>
#include<string.h>
#include<set>
#include<iostream>
#include<string>
using namespace std;
int main()
{
char s[1000];
set<string>S;
while(gets(s)!=NULL&&s[0]!='#')
{
int j,k,count=0;
int m=strlen(s);
string b[100];
char *p;
p=strtok(s," ") ;
for( k=0;p!=NULL;k++)
{
b[k]=p;
//cout<<b[k]<<endl;
p=strtok(NULL," ") ;
}
for(int i=0;i<k;i++)
{
if(S.count(b[i])==0)
{
S.insert(b[i]);
}
}
int ans=S.size();
printf("%d\n",ans);
S.clear();
}
return 0;
}//AC代碼