題目描述
提示幫助
提交記錄社群討論閱讀解答
隨機一題
給定乙個字串,找出不含有重複字元的最長子串的長度。
示例 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.給定字串,找到最長無重複字...