【力扣 TOP100】 无重复字符的最长子串
题目描述:
思路:
使用left和right表示子串的端点。每次判断新的right是否在之前的子串里,如果在,则将left更新为新字符在子串里的位置(因为在此之间,没有更长的子串了)。如果不在则right+1,并更新ans。
代码:
class Solution:def lengthOfLongestSubstring(self, s: str) -> int:l=len(s)if l==0:return 0left,right=0,1ans=1while right<l:if s[right] in s[left:right]:#s[right]在字串里left=s[left:right+1].find(s[right])+1+left#到下一个s[right]字符的位置right+=1else:#s[right]不在字串里right+=1ans=max(right-left,ans)return ans