1371 每個母音包含偶數次的最長子字串

2021-10-06 08:15:10 字數 1406 閱讀 7963

給你乙個字串 s ,請你返回滿足以下條件的最長子字串的長度:每個母音字母,即 『a』,『e』,『i』,『o』,『u』 ,在子字串中都恰好出現了偶數次。

示例 1:

輸入:s = 「eleetminicoworoep」

輸出:13

解釋:最長子字串是 「leetminicowor」 ,它包含 e,i,o 各 2 個,以及 0 個 a,u 。

示例 2:

輸入:s = 「leetcodeisgreat」

輸出:5

解釋:最長子字串是 「leetc」 ,其中包含 2 個 e 。

示例 3:

輸入:s = 「bcbcbc」

輸出:6

解釋:這個示例中,字串 「bcbcbc」 本身就是最長的,因為所有的母音 a,e,i,o,u 都出現了 0 次。

1 <= s.length <= 5 x 10^5

s 只包含小寫英文本母。

class

solution

:def

findthelongestsubstring

(self, s:

str)

->

int:

flag =

0 length =

0 slist =[-

1]*(

1<<5)

tempstr =

'aeiou'

slist[0]

=0for i,v in

enumerate

(s):

if v ==

'a':

flag ^=1

<<

4elif v==

'e':

flag ^=1

<<

3elif v ==

'i':

flag ^=1

<<

2elif v ==

'o':

flag ^=1

<<

1elif v ==

'u':

flag ^=1

<<

0if slist[flag]!=-

1:#奇數減奇數等於偶數,偶數減偶數等於偶數。

length =

max(length,i+

1-slist[flag]

)else

: slist[flag]

= i+

1#表示狀態為flag時有i+1個字元

return length

1371 每個母音包含偶數次的最長子字串

給你乙個字串 s 請你返回滿足以下條件的最長子字串的長度 每個母音字母,即 a e i o u 在子字串中都恰好出現了偶數次。示例 1 輸入 s eleetminicoworoep 輸出 13 解釋 最長子字串是 leetminicowor 它包含 e,i,o 各 2 個,以及 0 個 a,u 示例...

1371 每個母音包含偶數次的最長子字串

給你乙個字串 s 請你返回滿足以下條件的最長子字串的長度 每個母音字母,即 a e i o u 在子字串中都恰好出現了偶數次。示例 1 輸入 s eleetminicoworoep 輸出 13 解釋 最長子字串是 leetminicowor 它包含 e,i,o 各 2 個,以及 0 個 a,u 示例...

1371 每個母音包含偶數次的最長子字串

難度 中等 2020 5 20每日一題打卡 字首和 狀態壓縮 雜湊表 今天2020520,算是乙個很特別的日子了!但是每日一題還是要寫的 抄題解的一天 類似的題 1124.表現良好的最長時間段 題目描述 解題思路 參考題解 每個母音包含偶數次的最長子字串 官方題解 將題目一步步等價轉化 非奇即偶 與...