• 微信公众号:美女很有趣。 工作之余,放松一下,关注即送10G+美女照片!

Corporation Mail CodeForces – 56C

开发技术 开发技术 3小时前 1次浏览

原题链接
考察:思维
思路:
  每一个.代表了一个(boss)下属关系的声明结束.对于每一个(.)对比最后一个字符串和前面所有储存的字符串,如果相同(ans++)

Code

#include <iostream> 
#include <cstring>
#include <string>
using namespace std;
const int N = 1010;
char s[N];
string str[N];
int n,cnt;
int main()
{
	scanf("%s",s);
	n = strlen(s);
	string t;
	int ans = 0;
	for(int i=0;i<n;i++)
	{
		while(isalpha(s[i]))
		{
			t+=s[i];
			i++;
		}
		if(s[i]==':')
		{
			str[++cnt] = t;
			t = "";
		}
		if(s[i]==',') continue;
		if(s[i]=='.')
		{
			if(t!="") str[++cnt] = t;
			for(int j=1;j<cnt;j++)
			  if(str[j]==str[cnt]) ans++;
			cnt--;
			t = "";
		}
	}
	printf("%dn",ans);
	return 0;
}

程序员灯塔
转载请注明原文链接:Corporation Mail CodeForces – 56C
喜欢 (0)