hash(雜湊)。
把字串用一種特定的方式放到乙個陣列裡面。
我目前學的短,只知道兩個用處。
1、字串判重
相信很多人都會。
2、可以快速判斷同乙個字串中的兩段字串是否相等
maxx=10007;..
.fo(len,1,n)h[len]=h[len-1]*maxx+s[len];//c++可以不用打hash這個十分的爽,因為能自動的彈出乙個數(可正可負)
fo(len,1,n)g[i]=g[i-1]*maxx;//輔助陣列
判斷l到r是否等於l1到r1
bool pan(int l,int r,int l1,int r1)
證明其實很簡單,把式子展開一下就好了。 白兔的字串 字串hash
原題 一道典型的字串hash,至於hash,這裡講的非常好。一開始用map函式一直超時,後來改用unordered map就過了,至於這2個map的區別,這裡講的挺清楚的。之後去查了一下其它方法,發現還有一種方法是手寫map函式 強 指明 大佬 unordered map是跑了600ms,重寫跑了1...
Hash 字串 字串雜湊
luo gu luogu luogup 3370 p3370 p337 0如題,給定n個字串 第i個字串長度為mi,字串內包含數字 大小寫字母 請求出n個字串中共有多少個不同的字串。第一行包含乙個整數n,為字串的個數。接下來n行每行包含乙個字串,為所提供的字串。輸出包含一行,包含乙個整數,為不同的字...
字串 字串雜湊hash演算法
以洛谷p3370為引子引入吧 雜湊其實是所有字串操作中,筆者認為最簡單的操作了 except輸入輸出qwq 雜湊的過程,其實可以看作對乙個串的單向加密過程,並且需要保證所加的密不能高概率重複 就像不能讓隔壁老王輕易地用它家的鑰匙開啟你家門一樣qwq 通過這種方式來替代一些很費時間的操作。比如,最常見...