leetcode 3 無重複字元的最長子串

2021-08-29 00:17:55 字數 1485 閱讀 8024

題目描述

提示幫助

提交記錄社群討論閱讀解答

隨機一題

給定乙個字串,找出不含有重複字元的最長子串的長度。

示例 1:

輸入:"abcabcbb"輸出:3解釋:無重複字元的最長子串是"abc",其長度為 3。
示例 2:

輸入:"bbbbb"輸出:1解釋:無重複字元的最長子串是"b",其長度為 1。
示例 3:

輸入:"pwwkew"輸出:3解釋:無重複字元的最長子串是"wke",其長度為 3。

請注意,答案必須是乙個子串"pwke"是乙個子串行 而不是子串。

思路:

採用切分的方式,遇到重複字元時,記錄無重複字元的長度,把前面的所有字串「丟掉」然後以這個起點重新開始做切分,再遇到相同字元得到的長度與前面對比,取最大值,往復的到。

class solution:

def lengthoflongestsubstring(self, s):

""":type s: str

:rtype: int

"""d = {}

start = 0

ans = 0

for i,c in enumerate(s):

if c in d:

start = max(start, d[c] + 1)

print("start:",start)

d[c] = i

print("d:",d)

ans = max(ans, i - start + 1)

print("ans:",ans)

return ans

if __name__=='__main__':

a = solution()

s = str('pwwkew')

ans = a.lengthoflongestsubstring(s)

print(ans)

d: ans: 1

d: ans: 2

start: 2

d: ans: 2

d: ans: 2

d: ans: 3

start: 3

d: ans: 3

3process finished with exit code 0

leetcode 3 無重複的字串

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

leetcode 3 無重複字元的最長字元子串

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

leetcode 3 最長無重複字串

3.longest substring without repeating characters 題面 given a string,find the length of the longest substring without repeating characters.給定字串,找到最長無重複字...