leetcode-1371-每个元素包含偶数次的最长字符串
题目描述:
方法:前缀和+状态压缩 O(N)
class Solution: def findTheLongestSubstring(self, s: str) -> int: bit_mask = eval('0b00000') state_first_idx = {eval('0b00000'):-1} vowels = 'aeiou' ans = 0 for i in range(len(s)): if (idx:= vowels.find(s[i])) > -1: bit_mask ^= eval('0b10000') >> idx if bit_mask not in state_first_idx: state_first_idx[bit_mask] = i ans = max(ans,i - state_first_idx[bit_mask]) return ans