[leetcode] 3.无重复字符的最长子串
生活随笔
收集整理的這篇文章主要介紹了
[leetcode] 3.无重复字符的最长子串
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
給定一個字符串?s?,請你找出其中不含有重復字符的?最長子串?的長度。
示例?1:
輸入: s = "abcabcbb" 輸出: 3 解釋: 因為無重復字符的最長子串是 "abc",所以其長度為 3。示例 2:
輸入: s = "bbbbb" 輸出: 1 解釋: 因為無重復字符的最長子串是 "b",所以其長度為 1。示例 3:
輸入: s = "pwwkew"
輸出: 3
解釋: 因為無重復字符的最長子串是?"wke",所以其長度為 3。
?? ? 請注意,你的答案必須是 子串 的長度,"pwke"?是一個子序列,不是子串。
示例 4:
輸入: s = "" 輸出: 0 class Solution:def lengthOfLongestSubstring2(self, s: str) -> int:if len(s) == 0:return 0n = len(s)#char:countvisited = dict()#i和j之間的字符是最長不重復子串left = 0right = 0maxlen = 1#判斷j是否越界while right<n:#對j所在字符,取計數(shù)器count = visited.get(s[right],0)visited[s[right]] = count+1while visited[s[right]]>1:count2 = visited.get(s[left],0)visited[s[left]] = count2-1left +=1maxlen = max(maxlen,right-left+1)right+=1return maxlen總結
以上是生活随笔為你收集整理的[leetcode] 3.无重复字符的最长子串的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [leetcode] 160.相交链表
- 下一篇: [leetcode] 21.合并两个有序