今日题目:字符串哈希
1.题目要求
如题,给定 N 个字符串(第 i 个字符串长度为 Mi,字符串内包含数字、大小写字母,大小写敏感),请求出 N 个字符串中共有多少个不同的字符串。
输入格式
第一行包含一个整数 N,为字符串的个数。
接下来 N 行每行包含一个字符串,为所提供的字符串。
输出格式
输出包含一行,包含一个整数,为不同的字符串个数。
2.题目分析
题目难度:⭐️
题目涉及算法:哈希表等。
ps:有能力的小伙伴可以尝试优化自己的代码或者一题多解,这样能综合提升自己的算法能力
题解报告:
1.思路
题目给的要求很明显了(其实题名更明显,我们可以用string字符串排序保存,然后对比 如果相等肯定在一边。
2.代码
#include <bits/stdc++.h> using namespace std; const int N = 1600; string s[N]; int main() { int n; cin >> n; for(int i = 0; i < n; i++) { cin >> s[i]; } sort(s,s+n); int sum = n; for(int i = 1; i < n; i++) { if(s[i] == s[i - 1]) { sum--; } } cout << sum; return 0; }
直接搞起搞起
? 我直接RE
我以为是数组下标问题 就改了又改
听取RE一片
最后一看,原来是数组空间开小了,拉到16000,过啦!