最长子串,不重复Python中的字符
假设我们有一个字符串。我们必须找到最长的子字符串而不重复字符。因此,如果字符串类似于“ ABCABCBB”,那么结果将为3,因为有一个重复的子字符串,长度为3。即为“ ABC”。
为了解决这个问题,我们将按照以下步骤
设置i:= 0,j:= 0,设置一张映射以存储信息
回答:= 0
而j <字符串的长度s
i:= map [s [j]] + 1
ans:= max(ans,j – i + 1)
将j减1
ans:= max(ans,j – i + 1)
map [s [j]]:= j
如果s [j]在映射中不存在,或者i> map [s [j]],则
除此以外
将j增加1
返回ans
范例(Python)
让我们看一下下面的实现以获得更好的理解
class Solution(object):def lengthOfLongestSubstring(self, s):
i =0
j = 0
d={}
ans = 0
while j < len(s):
if s[j] not in d or i>d[s[j]]:
ans = max(ans,(j-i+1))
d[s[j]] = j
else:
i = d[s[j]]+1
ans = max(ans,(j-i+1))
j-=1
#print(ans)
j+=1
return ans
ob1 = Solution()print(ob1.lengthOfLongestSubstring("ABCABCBB"))
输入值
"ABCABCBB"
输出结果
3
以上是 最长子串,不重复Python中的字符 的全部内容, 来源链接: utcz.com/z/322318.html