跳到主要内容

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