题目描述 如题,给定 � N 个字符串(第 � i 个字符串长度为 � � M i ,字符串内包含数字、大小写字母,大小写敏感),请求出 � N 个字符串中共有多少个不同的字符串。 输入格式 第一行包含一个整数 � N ,为字符串的个数 接下来 � N 行每行包含一个字符串,为所提供的字符串 输出格式 输出包含一行,包含一个整数,为不同的字符串个数 样例输入 5 abc aaaa abc abcc 12345 样例输出 4 数据范围 � ≤ 10000 N≤10000, � � ≈ 1000 M i ≈1000, � � � � ≤ 1500 M max ≤1500。请用C++语言写出实现程序。
时间: 2024-01-16 16:05:29 浏览: 125
js-utils-给定两个字符串s和t
可以使用C++中的unordered_set实现字符串去重:
```cpp
#include <iostream>
#include <unordered_set>
#include <string>
using namespace std;
int main()
{
int n;
cin >> n;
unordered_set<string> s;
for (int i = 0; i < n; i++) {
string str;
cin >> str;
s.insert(str);
}
cout << s.size() << endl;
return 0;
}
```
其中unordered_set是一个哈希表,可以快速地判断一个字符串是否已经出现过。时间复杂度为O(N),空间复杂度为O(N)。
阅读全文