白银组第四题

单词数
Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 69554 Accepted Submission(s): 17473

Problem Description
lily的好朋友xiaoou333最近很空,他想了一件没有什么意义的事情,就是统计一篇文章里不同单词的总数。下面你的任务是帮助xiaoou333解决这个问题。

Input
有多组数据,每组一行,每组就是一篇小文章。每篇小文章都是由小写字母和空格组成,没有标点符号,遇到#时表示输入结束。

Output
每组只输出一个整数,其单独成行,该整数代表一篇文章里不同单词的总数。

Sample Input
you are my friend

Sample Output
4

#include <iostream>
#include <string>
using namespace std;

int main()
{
	string s;
	while (getline(cin,s))
	{
		getchar();
		getchar();
		int i=0, j = 0,k=0;
		while (s[i] != 35&&s[i]!='\0')
		{
			if (s[i]==32)
			{
				i++, j++;
			}
			i++;
		}
	
		string *b = new string[j+2];
		for (int a = 0; a < j+1; a++)
		{
			k = s.find(" ");
			b[a] = string(s, 0, k);
			if(a!=j+1)
			s = s.substr(k + 1);
		}
		for (int d = 0; d < j + 1; d++)
		{
			string temp;
			for (int g = 0; g < j +1- d-1; g++)
			{
				if (b[g] < b[g + 1])
				{
					temp = b[g];
					b[g] = b[g + 1];
					b[g + 1] = temp;
				}
			}
		}
		
		int m = 1;
		for (int h = 0; h < j; h++)
		{
			
			if (b[h] != b[h + 1])
				m++;
			
		}
		cout << m;
	}
}

猜你喜欢

转载自blog.csdn.net/weixin_43981207/article/details/85010643