解题思路:
使用hash即可
为了方便,使用set储存哈希值相同的字符串
注意事项:
定义set集合要定义成set
set g[1001]; //定义 g[hashs(s)].insert(s); //插入字符串,set自动排序并去重 g[hashs(s)].count(s); //查找集合内元素s的个数
参考代码:
#include <bits/stdc++.h> using namespace std; set g[1001]; int hashs(string str) { int sum = 0,t = 1; for(int i = 0; i < str.size(); i++) { sum = (sum+str[i]*t%128)%128; t = (t*256)%128; } return sum; } int main() { string s; int n; cin >> n; for(int i = 1; i > s; if(s == "add") { getline(cin,s); g[hashs(s)].insert(s); } else { getline(cin,s); if(g[hashs(s)].count(s)) cout << "yes\n"; else cout << "no\n"; } } return 0; }
0.0分
1 人评分
C语言程序设计教程(第三版)课后习题8.9 (C语言代码)浏览:822 |
C语言训练-尼科彻斯定理 (C语言代码)。。。内含证明定理浏览:2068 |
C语言程序设计教程(第三版)课后习题8.3 (Java代码)浏览:1372 |
震宇大神的杀毒软件 (C++代码)浏览:1117 |
C语言训练-求函数值 (C语言代码)浏览:937 |
C语言训练-立方和不等式 (C语言代码)浏览:751 |
这可能是一个假的冒泡法浏览:985 |
A+B for Input-Output Practice (V) (C语言代码)浏览:621 |
C语言程序设计教程(第三版)课后习题8.5 (C语言代码)浏览:543 |
C语言训练-数字母 (C语言代码)浏览:649 |