leetcode-3.無重復字符的最長子串

題目:https://leetcode-cn.com/problems/longest-substring-without-repeating-characters/
要求:

給定一個字符串,請你找出其中不含有重復字符的 最長子串 的長度。

示例 1:

輸入: s = "abcabcbb"

輸出: 3

解釋: 因為無重復字符的最長子串是 "abc",所以其長度為 3。

示例 2:

輸入: s = "bbbbb"

輸出: 1

解釋: 因為無重復字符的最長子串是 "b",所以其長度為 1。

示例 3:

輸入: s = "pwwkew"

輸出: 3

解釋: 因為無重復字符的最長子串是 "wke",所以其長度為 3。

請注意,你的答案必須是 子串 的長度,"pwke" 是一個子序列,不是子串。

示例 4:

輸入: s = ""

輸出: 0

提示:

0 <= s.length <= 5 * 104

s 由英文字母、數(shù)字、符號和空格組成

leetcode submit region begin(Prohibit modification and deletion)

class Solution:
def lengthOfLongestSubstring(self, s: str) -> int:

leetcode submit region end(Prohibit modification and deletion)

AC解析過程
class Solution:
def lengthOfLongestSubstring(self, s: str) -> int:
if len(s) <=1:
return len(s)
left ,max_len = 0,0
hashtable={}
for right in range(len(s)):
cur= s[right]
if cur in hashtable:
if hashtable[cur] +1 >=left: #這里默認了元素值為 為{值:索引}
left = hashtable[cur] +1
hashtable[cur] = right #在重復位置做個標記
max_len= max(max_len,right -left +1) #比較上次字串長度和當前長度大小
return max_len

作者:vigilant-7amportprg
鏈接:https://leetcode-cn.com/problems/longest-substring-without-repeating-characters/solution/jie-zhu-ha-xi-biao-de-xing-shi-jie-jue-z-5rq8/
來源:力扣(LeetCode)
著作權歸作者所有。商業(yè)轉載請聯(lián)系作者獲得授權,非商業(yè)轉載請注明出處。

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容