難度:中等
給定乙個字串,請你找出其中不含有重複字元的最長子串的長度。
示例1
輸入: s = "abcabcbb"
輸出: 3
解釋: 因為無重複字元的最長子串是 "abc",所以其長度為 3。
示例2
輸入: s = ""
輸出: 0
滑動窗⼝的右邊界不斷的右移,只要沒有重複的字元,就持續向右擴⼤窗⼝邊界。⼀旦出現了重複字 符,就需要縮⼩左邊界,直到重複的字元移出了左邊界(使用map可直接將左邊界跳轉到正確的位置),然後繼續移動滑動窗⼝的右邊界。以此類推, 每次移動需要計算當前⻓度,並判斷是否需要更新最⼤⻓度,最終最⼤的值就是題⽬中的所求。
(a)b c a b c b b
(a b)c a b c b b
(a b c)a b c b b
a(b c a)b c b b
a(b c a b)c b b
a b(c a b)c b b
a b c(a b c)b b
a b c a b(c b)b
a b c a b c b(b)
class
solution
// 每次都計算最長視窗長度,防止出現沒有重複字元情況下最長長度為初始值
result = math.
max(end - start +
1, result)
;// 新增or更新字元最大位置
map.
put(key, end);}
return result;
}}
LeetCode第3題題解 無重複字元的最長子串
題目 leetcode 題目描述 給定乙個字串,請你找出其中不含有重複字元的最長子串的長度。示例 1 輸入 abcabcbb 輸出 3 解釋 因為無重複字元的最長子串是 abc 所以其長度為 3。示例 2 輸入 bbbbb 輸出 1 解釋 因為無重複字元的最長子串是 b 所以其長度為 1。示例 3 ...
LeetCode刷題實戰3 無重複字元的最長子串
題目描述 給定乙個字串,請你找出其中不含有重複字元的最長子串的長度。示例 1 輸入 s abcabcbb 輸出 3 解釋 因為無重複字元的最長子串是 abc 所以其長度為 3。示例 2 輸入 s bbbbb 輸出 1 解釋 因為無重複字元的最長子串是 b 所以其長度為 1。示例 3 輸入 s pww...
leetcode刷題之路3 無重複字元的最長子串
給定乙個字串,請你找出其中不含有重複字元的 最長子串 的長度。示例 1 輸入 abcabcbb 輸出 3 解釋 因為無重複字元的最長子串是 abc 所以其長度為 3。字元陣列和字串的區別,c語言字元陣列和字串區別詳解 開始的想法是在對字元陣列設定兩個指標,初始化乙個在位置0乙個在位置1,ans初始化...