LeetCode 第3題 Longest Substring Without Repeating Characters【滑動視窗】(Java)
原題地址: https://leetcode.com/problems/longest-substring-without-repeating-characters/
要求如下:
給定一個字串,找出最長的沒有重複字元的子串。
例 1:
輸入為: “abcabcbb”
輸出位: 3
答案是”abc”,長度為3。
例 2:
輸入為: “bbbbb”
輸出位: 1
答案是”b”,長度為1。
例 3:
輸入為: “pwwkew”
輸出位: 3
答案是”wke”,長度為3。
明顯還是變寬滑動視窗,視窗用字元陣列來做(這次是+1入視窗,-1出視窗),然後我們可以滑動right擴大視窗,出現重複字元就儲存在一個hashmap裡,只要重複字元存在,我們就滑動left減小視窗,沒有了重複字元,我們就比較下視窗字串是不是目前最短的。
程式碼如下:

本題程式碼地址為: https://github.com/tinyfool/leetcode/tree/master/src/p0003
本文假設你對滑動視窗概念有所瞭解,如果你對滑動視窗的概念不夠了解,請參看我介紹 滑動視窗的文章,裡面有詳細的解釋 。