輸入字串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 ...