1542. Find Longest Awesome Substring (Hard) - TengnanYao/daily_leetcode GitHub Wiki
class Solution(object):
def longestAwesome(self, s):
"""
:type s: str
:rtype: int
"""
n = len(s)
result = 0
mask = 0
memo = [n] * 1024
memo[0] = -1
for i in range(n):
mask ^= 1 << int(s[i])
result = max(result, i - memo[mask])
for j in range(10):
temp = mask ^ (1 << j)
result = max(result, i - memo[temp])
memo[mask] = min(memo[mask], i)
return result