求有多少個連續字串中所有的字母都出現了偶數次

2022-05-13 16:00:56 字數 588 閱讀 5628

給出乙個長度為 n 的字串(1<=n<=100000),求有多少個連續字串中所有的字母都出現了偶數次。 

這題的思路是這樣的,首先我們可以狀壓,每一位0代表該位代表字母的數量是偶數個,1則代表奇數個

那麼我們記錄乙個字首的狀態,如果後面有歐串,則一定可以異或之前出現過的字首得到全零的合法狀態,

因此我們用map記錄一下,之前有多少個相同狀態的字首就好了

不用列舉子串的原因是,我們總可以用長的字首減去短的字首來獲得所有符合條件的子串,附上**

#include #include 

#include

#include

using

namespace

std;

const

int maxn=1e5+7

;char

s[maxn];

mapmp;

typedef

long

long

ll;int

main()

printf(

"%lld\n

",ans);

}return0;

}

對給定字串求所有的組合

輸入字串,輸出所有的組合,比如輸入abc,輸出 a b c ab ac bc abc。題目解法 abc用01串表示,001表示輸出c,111表示輸出abc,解法如下。空間複雜度n,時間複雜度為2 n 1,因為有這麼多種結果啊。package combination author administra...

Leetcode438 找到字串中所有字母異位詞

給定乙個字串 s 和乙個非空字串 p,找到 s 中所有是 p 的字母異位詞的子串,返回這些子串的起始索引。字串只包含小寫英文本母,並且字串 s 和 p 的長度都不超過 20100。說明 字母異位詞指字母相同,但排列不同的字串。不考慮答案輸出的順序。示例 1 輸入 s cbaebabacd p abc...

leetcode438 找到字串中所有字母異位詞

其實我的演算法並不是強項,然後今天在做438這道題的時候發現了乙個讓我無比佩服的思路,這裡記錄一下和大家分享 首先看一下題目 給定乙個字串 s 和乙個非空字串 p,找到 s 中所有是 p 的字母異位詞的子串,返回這些子串的起始索引。字串只包含小寫英文本母,並且字串 s 和 p 的長度都不超過 201...