class Solution(object):
def longestNiceSubstring(self, s):
sLen = len(s)
# 声明两个变量存放 最大串的起始索引和长度
maxPosition, maxLen = 0, 0
for i in range(sLen):
# 创建两个26长度的[0,0,0...]
# 用作标志位表示此段是否大小写字母出现
lower, upper = [0 for _ in range(26)], [0 for _ in range(26)]
for j in range(i, sLen):
if s[j].islower():
lower[ord(s[j])-ord("a")] = 1
else:
upper[ord(s[j])-ord("A")] = 1
# 如果当前两个标志段相同, 说明此时大小写字母出现的符合规则
# 确定当前 起始索引 和 最大长度
if lower == upper and j-i+1 > maxLen:
maxPosition = i
maxLen = j-i+1
# 返回符合条件的最大串
return s[maxPosition : maxPosition+maxLen]
leetcode刷题250天(2)——1763. 最长的美好子字符串
最新推荐文章于 2024-06-22 22:59:06 发布