求助
  • 板块P2264 情书
  • 楼主gyttnnd
  • 当前回复0
  • 已保存回复0
  • 发布时间2022/12/7 20:59
  • 上次更新2023/10/27 00:10:57
查看原帖
求助
835944
gyttnnd楼主2022/12/7 20:59
#include<iostream>
#include<map>
#include<cctype>
using namespace std;

int n;
string ss[1009];
map<string,bool>a;
// 判断是否存在 
map<string,int>m;
//去重 
int main()
{
	cin>>n;
	for(int i=1;i<=n;i++)
	{
		string p;
		cin>>p;
		for(int i=0;i<p.size();i++)
		{
			p[i]=tolower(p[i]);
			//转换大小写 
		}
		a[p]=true;
		//拥有 
	}
	string s;
	int ans=0;
	int sum=0;
	while(cin>>s)
	{
		//cout<<ans<<endl;
		string p="";
		for(int i=0;i<s.size();i++)
		{
			if(s[i]>='a'&&s[i]<='z')
			p=p+s[i];
			//直接加入 
			if(s[i]>='A'&&s[i]<='Z')
			{
				s[i]=tolower(s[i]);
				//小写转换 
				p=p+s[i];
			}
		}
		if(a[p]==true&&m[p]==0)
		{
			//拥有且只出现过一次 
			ans++;
			m[p]=1;
			sum++;
			ss[sum]=p;
		}
		//cout<<p<<endl; 
		if(s[s.size()-1]=='.')
		{
			for(int i=1;i<=sum;i++)
			{
				m[ss[i]]=0;
			}
			sum=0;
		}
	}
	cout<<ans;
	return 0;
}
2022/12/7 20:59
加载中...