2020 7 12雜湊 滑動視窗

2021-10-23 08:18:41 字數 694 閱讀 1379

輸入字串s和t,求出t中由和s相同字母構成序列的數目(可包括s)

輸入abc

abcbac

輸出3 (abc cba bac)

#include #include#include#include#include#includeusing namespace std;

typedef long long ll;

char s[200010],t[200010];

ll f[200010],p[200010];

int mod=998244353;

vectorh;

mapm;

int main()

{ scanf("%s%s",s,t);

int l1=strlen(s),l2=strlen(t);

p[0]=1;

for(int i=1;i<=l1;i++) p[i]=p[i-1]*33;

/*自然溢位,當儲存的資料大於unsigned long long的儲存範圍時,會自動mod 2^64−1。20w太大了,對mod直接wa,還是自然溢位吧*/

/*如果第乙個字串大小只有1的話,遍歷就行了*/

if(l1==1)

{ int flag=0;

for(int i=0;i相關練習

1.leetcode 438號練習

2. hdu 4821

leetcode 雜湊 滑動視窗 字串

1 leetcode409 給定乙個包含大寫字母和小寫字母的字串,找到通過這些字母構造成的最長的回文串。在構造過程中,請注意區分大小寫。比如 aa 不能當做乙個回文字串 class solution object deflongestpalindrome self,s type s str rtyp...

String (字串雜湊 滑動視窗)

題目大意 給乙個字串s,求它連續長度為 m l 的子串s1,且s1可分為m個長度為 l 的子子串s2不相同的數量。思路 對比長度為 l 的字串是否相同,這裡用到了bkdrhash,一般來說最高效的常用hash了,存m個 l k l k 1 的雜湊值,比較是否相等,不等的話,視窗右移到最右端,依次比較...

Week5 D 滑動視窗滑動視窗

week5 d 滑動視窗滑動視窗 zjm 有乙個長度為 n 的數列和乙個大小為 k 的視窗,視窗可以在數列上來回移動.現在 zjm 想知道在視窗從左往右滑的時候,每次視窗內數的最大值和最小值分別是多少.例如 數列是 1 3 1 3 5 3 6 7 其中 k 等於 3.window position ...