有一天,本蒟蒻刷到了一道题:
题目
字符串哈希
难度
0.02
描述
给定 N 个字符串(字符串内包含数字、大小写字母,大小写敏感),求 N 个字符串中共有多少个不同的字符串。
N<=10000,每个字符串的长度<=1500
输入描述
第一行输入N,之后输入N个字符串
输出描述
输出包含一行,包含一个整数,为不同的字符串个数。
样例输入 1
5 abc aaaa abc abcc 12345
样例输出 1
4
当时我震惊了:提高组的算法既然难度辣么低qwq
突然,我想到了一种方法:STL中的set!
set有自动排序和去重的功能,可以插入、求元素个数,于是,我逝了亿下:
#include<bits/stdc++.h> using namespace std; set<string>s; string st; int main(){ int n; cin>>n; for(int i=1;i<=n;i++){ cin>>st; s.insert(st); } cout<<s.size(); }当时运行的画面:
最后,给大家总结一下:
看到哈希不要慌,用STL中的set就能轻松干掉了~
补充:
set插入元素:
s.insert(x);set求元素个数:
int len=s.size();蒟蒻创作不容易,请各位dalao点评。
有什么不清楚的,欢迎评论区留言~