不含有重複字元的 最長子串 的長度。

2021-09-12 17:50:07 字數 870 閱讀 9609

題目:給定乙個字串,請你找出其中不含有重複字元的最長子串的長度。

class solution(object):

def lengthoflongestsubstring(self, s):

""":type s: str

:rtype: int

"""# 儲存歷史迴圈中最長的子串長度

max_len = 0

# 判斷傳入的字串是否為空

if s is none or len(s) == 0:

return max_len

# 定義乙個字典,儲存不重複的字元和字元所在的下標

str_dict = {}

# 儲存每次迴圈中最長的子串長度

one_max = 0

# 記錄最近重複字元所在的位置+1

start = 0

for i in range(len(s)):

# 判斷當前字元是否在字典中和當前字元的下標是否大於等於最近重複字元的所在位置

if s[i] in str_dict and str_dict[s[i]] >= start:

# 記錄當前字元的值+1

start = str_dict[s[i]] + 1

# print start

# 在此次迴圈中,最大的不重複子串的長度

one_max = i - start + 1

# 把當前位置覆蓋字典中的位置

str_dict[s[i]] = i

# 比較此次迴圈的最大不重複子串長度和歷史迴圈最大不重複子串長度

max_len = max(max_len, one_max)

return max_len

不含有重複字元的最長子串的長度

示例 1 輸入 abcabcbb 輸出 3解釋 因為無重複字元的最長子串是 abc 所以其長度為 3。示例 2 輸入 bbbbb 輸出 1解釋 因為無重複字元的最長子串是 b 所以其長度為 1。示例 3 輸入 pwwkew 輸出 3解釋 因為無重複字元的最長子串是 wke 所以其長度為 3。請注意,...

演算法 不含有重複字元的 最長子串 的長度

給定乙個字串,請你找出其中不含有重複字元的 最長子串 的長度。示例 1 輸入 abcabcbb 輸出 3 解釋 因為無重複字元的最長子串是 abc 所以其長度為 3。示例 2 輸入 bbbbb 輸出 1 解釋 因為無重複字元的最長子串是 b 所以其長度為 1。示例 3 輸入 pwwkew 輸出 3 ...

不含有重複字元的最長子串

給定乙個字串,請你找出其中不含有重複字元的 最長子串 的長度。示例 1 輸入 abcabcbb 輸出 3 解釋 因為無重複字元的最長子串是 abc 所以其長度為 3。示例 2 輸入 bbbbb 輸出 1 解釋 因為無重複字元的最長子串是 b 所以其長度為 1。示例 3 輸入 pwwkew 輸出 3 ...