1542.找出最长的超赞子字符串
链接:1542.找出最长的超赞子字符串
难度:Hard
标签:位运算、哈希表、字符串
简介:给你一个字符串 s 。请返回 s 中最长的 超赞子字符串 的长度。
题解 1 - python
- 编辑时间:2024-05-20
- 执行用时:858ms
- 内存消耗:16.84MB
- 编程语言:python
- 解法介绍:利用二进制存储便利过的奇偶。
class Solution:
    def longestAwesome(self, s: str) -> int:
        n = len(s)
        res = 0
        cur = 0
        map = { 0: -1 }
        for i in range(n):
            num = ord(s[i]) - ord('0')
            cur ^= 1 << num
            for offset in range(10):
                v = cur ^ (1 << offset)
                if v in map:
                    res = max(res, i - map[v])
            if cur in map:
                res = max(res, i - map[cur])
            else:
                map[cur] = i
        return res