解题思路:
使用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语言程序设计教程(第三版)课后习题9.10 (C语言代码)浏览:601 |
C语言程序设计教程(第三版)课后习题4.9 (C语言代码)浏览:689 |
矩阵乘法 (C++代码)浏览:1454 |
2006年春浙江省计算机等级考试二级C 编程题(2) (C语言代码)浏览:640 |
母牛的故事 (C语言代码)浏览:715 |
C二级辅导-公约公倍 (C语言代码)浏览:481 |
C语言程序设计教程(第三版)课后习题6.8 (C语言代码)浏览:610 |
C语言程序设计教程(第三版)课后习题8.3 (C语言代码)浏览:524 |
青年歌手大奖赛_评委会打分 (C语言代码)浏览:2139 |
C语言程序设计教程(第三版)课后习题8.6 (C语言代码)浏览:585 |