模板 字串雜湊

2021-09-26 02:36:25 字數 1218 閱讀 6346

如題,給定n個字串(第i個字串長度為mi,字串內包含數字、大小寫字母,大小寫敏感),請求出n個字串中共有多少個不同的字串。

第一行包含乙個整數n,為字串的個數。

接下來n行每行包含乙個字串,為所提供的字串。

輸出包含一行,包含乙個整數,為不同的字串個數。

s am

plei

nput

sample input

sample

inpu

t

5

abcaaaa

abcabcc

12345

s am

pleo

utpu

tsample output

sample

outp

ut

4
雜湊

或暴力/笑

#include

#include

#include

#include

using

namespace std;

mapint>a;

int ans,n;

string s;

intmain()

printf

("%d"

,ans)

;return0;

}

#include

#include

#include

#include

using

namespace std;

typedef

unsigned

long

long ull;

ull f[

100250];

ull base=

131;

int ans,n;

string s;

intmain()

sort

(f+1

,f+n+1)

;for

(int i=

2;i<=n;

++i)

if(f[i]

==f[i-1]

)ans--

;printf

("%d"

,ans)

;return0;

}

字串雜湊 模板

以下文字 據我的理解,hash就是乙個像函式一樣的東西,你放進去乙個值,它給你輸出來乙個值。輸出的值就是hash值。一般hash值會比原來的值更好儲存 更小 或比較。那字串hash就非常好理解了。就是把字串轉換成乙個整數的函式。而且要盡量做到使字串對應唯一的hash值。字串hash的種類還是有很多種...

字串雜湊(模板)

尋找長度為n的主串s中的匹配串t 長度為m 出現的位置或次數屬於字串匹配問題。字串雜湊就是將每個字串轉化為乙個數值,然後遍歷主串,判斷在主串起始位置為i長度為m的字串的雜湊值與匹配串的雜湊值是否相等即可,每次判斷為o 1 的時間。這樣就可以轉化為o n 的時間完成判斷。若求字串中第i位到第j位的雜湊...

模板 字串雜湊

字串雜湊,說白了就是乙個函式,你把乙個字串輸入進去處理,輸出乙個更容易儲存或者比較的東西,相當於乙個加密的過程。但是對於同乙個加密方法,可能會有不同字串得到同樣的結果的情況,所以我們要做的就是讓字串的雜湊值盡量不相等。一般我們現在接觸到的字串雜湊,基本思想就是把它的每一位轉化成乙個特殊進製數的乙個數...