给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。
示例 1:
输入: “abcabcbb”
输出: 3
解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。
示例 2:
输入: “bbbbb”
输出: 1
解释: 因为无重复字符的最长子串是 “b”,所以其长度为 1。
解法:双指针i,j,j遍历,若s[j]与s[i:j]重复,则i更新为与s[j]重复的下标+1
def lengthOfLongestSubstring(s):
"""
:type s: str
:rtype: int
"""
rtype=0
i=0
j=0
while i<=j and j<len(s):
#print(i,j,s[j],s[i:j],rtype)
if s[j] not in s[i:j]:
#print(s[i:j],s[j])
if rtype<j-i+1:
rtype=j-i+1
j+=1
else:
k=s[i:j].index(s[j])
i=i+k+1
#print(s[i:j],s[j])
return rtype