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