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

2022-07-12 04:54:07 字數 760 閱讀 4958

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

示例 1:

輸入: "abcabcbb"

輸出: 3

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

示例 2:

輸入: "bbbbb"

輸出: 1

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

示例 3:

輸入: "pwwkew"

輸出: 3

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

雙指標法。看到這種「連續」、「最大」、「最長」的就應該想到雙指標。雙指標是專門用來解決最長的序列的一系列問題的。

雙指標其實也是一種貪心。主要思想是:用乙個指標(左指標)指向最左邊,另乙個指標(右指標)從第乙個元素開始遍歷。兩個指標夾起來的部分就是乙個子串。只要這個子串沒有相同字元,那麼右指標就一直右移。直到,右指標的字元重複了,那麼左指標右移。這就相當於,將左邊的長度縮短。然後重複上述操作。

這種貪心是對的,因為如果最短的子串都不滿足要求,那麼更大的子串一定不滿足(仔細想想應該能想出來)。

# include # include # include # include using namespace std;

class solution

return ans;

}};int main()

無重複字元最長子串

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

無重複字元最長子串

題目描述 給定乙個字串,找出不含有重複字元的 最長子串 的長度。示例 給定 abcabcbb 沒有重複字元的最長子串是 abc 那麼長度就是3。給定 bbbbb 最長的子串就是 b 長度是1。給定 pwwkew 最長子串是 wke 長度是3。請注意答案必須是乙個子串,pwke 是子串行而不是子串 i...

無重複字元的最長子串

給定乙個字串,找出不含有重複字元的最長子串的長度。示例 給定 abcabcbb 沒有重複字元的最長子串是 abc 那麼長度就是3。給定 bbbbb 最長的子串就是 b 長度是1。給定 pwwkew 最長子串是 wke 長度是3。請注意答案必須是乙個子串,pwke 是 子串行 而不是子串。int le...