重复

链接:https://ac.nowcoder.com/acm/contest/558/B
来源:牛客网
 

题目描述

小猫在研究字符串。

小猫在研究重复。

给定N个长度为M的字符串,问这些字符串去重后有几种。

输入描述:

第一行两个正整数N,M,表示字符串的个数与长度。

接下来N行,每行一个长度为M的字符串。

输出描述:

一行一个整数,表示答案。

示例1

输入

复制

4 3
abc
abb
abb
cbc

输出

复制

3

备注:

1≤N≤105,1≤M≤100,字符都是小写字母

思路:用暴力桶排数量为1 加起来然后用set整个字符去重ac

代码:

#include<iostream>
#include<cstring>
#include<algorithm> 
#include<set>
using namespace std;
int a[1009];
int main()
{
	int n,m;
	scanf("%d%d",&n,&m);
	set<string>A;string s,h;
	for(int i = 0;i<n;++i)
	{
		cin>>s;memset(a,0,sizeof(a));h="";
		for(int j = 0;j < s.length();++j)
		{
			a[s[j]-'a']++;
			if(a[s[j]-'a']<=1)
			{
				h+=(s[j]+'a');	
			} 
		}
		A.insert(h); 
	}
	printf("%d\n",A.size());
	return 0;
}

猜你喜欢

转载自blog.csdn.net/qq_43568078/article/details/89298159