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

2022-05-14 17:30:06 字數 890 閱讀 7234

題目:

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

示例 1:

輸入: "abcabcbb"

輸出: 3

解釋: 因為無重複字元的最長子串是"abc",所以其長度為3。

示例 2:

輸入: "bbbbb"

輸出: 1

解釋: 因為無重複字元的最長子串是"b",

所以其長度為 1。

示例 3:

輸入: "pwwkew" 輸出: 3 解釋: 因為無重複字元的最長子串是"wke",所以其長度為 3。   請注意,你的答案必須是 子串 的長度,"pwke"是乙個子串行,不是子串。

本題是找出最大長度的子串,而不是子串行。我們可以用雙重迴圈進行逐個比較,外層迴圈用j表示需要比較的第j個字元,內層迴圈用k表示,比較的字元將在前j個字元中比較,當前j個字元和s[j]均不相等時,說明s[j]可加入到無重複子串中,j++,比較下乙個字元;

當存在s[k]==s[j]的情況下,說明無重複字元的條件不滿足,此時將得到的最長子串長度記錄到max中;

那麼,無重複字元的條件被打破後,k的值怎麼變化呢,我們來用圖中的例子來說明,如"abcadcbb",當k=0,j=3時,s[k]==s[j],此時,s[0]字元是不再需要比較了的,下次比較的位置可以從k=1開始,無需再從k=0開始,否則會陷入迴圈,那麼我們需要用乙個變數i來記錄每次匹配到重複字元時k的位置的下乙個位置i=k+1,s[i]便是下次字元比較的起始位置。

class

solution

}if(j-i+1 > max) max = j-i+1

; }

return

max;

}};

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.給定字串,找到最長無重複字...