如果key不是整數,設計雜湊函式:
例子題目:
如何將乙個二維整點p的座標對映為乙個整數,使得整點p可以由該整數唯一地代表
假設乙個整點p的座標是(x,y),其中0<=x,y<=range
那麼可以令hash函式為h(p)=x*range+y
這樣對資料範圍內的任意兩個整點p1,p2,
h(p1)都不會等於h(p2)
就可以用h(p)來唯一地代表該整點p
接著可以通過證書hash的方法來進一步對映到較小的範圍
字串hash是將乙個字串s對映成乙個整數,
使得該整數可以盡可能唯一地代表字串s
先討論(將字串轉換為唯一的整數)
int hashfunc(char s,int len)
return id;
}
而如果出現了數字,一般有兩種處理方法
①按照小寫字母的處理方法,增大進製至62
②如果保證在字串的末尾是確定個數的數字
那麼就可以把前面英文本母的部分按上面的思路轉換成整數
再將末尾的數字直接拼接上去
例如對由三個字元加一位數字組成的字串「bcd4」來說
就可以先將前面的「bcd」轉化為整數731
然後直接拼接上末尾的4變成7314即可
int hashfunc(char s,int len)
{ int id=0;
for(int i=0;i乙個問題:
給出n個字串(由恰好三位大寫字母組成),再給出m個查詢字串
問每個查詢字串在n個字串中出現的次數
#include#define maxn 100
char s[maxn][5],temp[5];
int hashtable[26*26*26+10];
int hashfunc(char s,int len)
{ int id=0;
for(int i=0;i知識點來自於《演算法筆記》
Hash 字串 字串雜湊
luo gu luogu luogup 3370 p3370 p337 0如題,給定n個字串 第i個字串長度為mi,字串內包含數字 大小寫字母 請求出n個字串中共有多少個不同的字串。第一行包含乙個整數n,為字串的個數。接下來n行每行包含乙個字串,為所提供的字串。輸出包含一行,包含乙個整數,為不同的字...
字串初步
字串在qbasic中,是一種型別。而在c 裡面,則一般不用這種型別來完成字串的操作,而是通過字元陣列來完成字串的操作 c 裡面的string型別處理速度較慢 字元型別我們以前就已經學習過了,是char型別。而字元陣列就是類似這樣定義的陣列 char s 100 通過這樣的定義,我們就可以通過 cin...
python 高階函式 字串的補充
變數可以指向函式,函式的引數可以接收變數,那麼函式可以接收另乙個函式作為引數,這種函式稱為高階函式 1 函式本身也可以賦值給變數 變數可以指向函式 print abs 11 abs函式 求絕對值 f abs print f 10 2 傳遞的引數包含函式名 def fun x,y,f return f...